package com.navinfo.tripanalysis.offline.service.impl.huashen;

import com.navinfo.tripanalysis.common.arithmetic.common.InterCrossCity;
import com.navinfo.tripanalysis.common.arithmetic.common.OuterStatisticData;
import com.navinfo.tripanalysis.common.pojo.RunningType;
import com.navinfo.tripanalysis.common.pojo.RunningTypeEnum;
import com.navinfo.tripanalysis.common.util.GsonUtils;
import com.navinfo.tripanalysis.common.util.JsonUtils;
import com.navinfo.tripanalysis.offline.service.TripStatisticConvertService;
import org.apache.commons.lang3.StringUtils;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.catalyst.expressions.GenericRow;
import org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema;
import org.apache.spark.sql.types.DataTypes;
import org.apache.spark.sql.types.Metadata;
import org.apache.spark.sql.types.StructField;
import org.apache.spark.sql.types.StructType;
import org.bson.Document;

import java.util.ArrayList;
import java.util.List;

/**
 * 行程统计信息的东风转换服务
 * @author: web
 * @date: 2020-05-14
 **/
@RunningType(value = RunningTypeEnum.HS, interfaceClass = TripStatisticConvertService.class )
public class TripStatisticConvertServiceImpl implements TripStatisticConvertService {
    @Override
    public StructType createSchema() {
        List<StructField> list = new ArrayList<>();
        /*--start_schema*/
        list.add(new StructField("uid", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("tid", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("trip_id", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_time", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("route_start_lc", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_latitude", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_longitude", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_height", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_direction", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_time", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("route_end_lc", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_latitude", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_longitude", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_height", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_direction", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_integral_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_integral_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("trip_power", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("stype", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("trip_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("trip_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("trip_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_stop_flag", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cross_day_flag", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("force_end_flag", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_speed", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_speed", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_useful_speed", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_useful_speed", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("in_gear_coast_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("in_gear_coast_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("in_gear_coast_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("brake_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("brake_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("brake_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_estimated_load", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("parking_power_on_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("city_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("city_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("city_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rural_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rural_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rural_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("eco_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("eco_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("eco_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("up_slope_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("up_slope_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("up_slope_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("down_slope_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("down_slope_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("down_slope_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("level_road_driving_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("level_road_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("level_road_driving_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cruise_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cruise_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cruise_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("shift_gears_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_step_on_gas_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_step_on_gas_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_step_on_gas_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_step_on_gas_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_park_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_start_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_start_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_start_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_start_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_cold_start_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_cold_start_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_cold_start_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vehicle_cold_start_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("charge_fuel_percent", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("charge_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("leak_fuel_percent", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("leak_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_stability_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_stability_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range01_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range01_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range01_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range02_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range02_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range02_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range03_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range03_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range03_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range04_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range04_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range04_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range05_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range05_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range05_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range06_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range06_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range06_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range07_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range07_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range07_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range08_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range08_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range08_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range09_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range09_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range09_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range10_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range10_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range10_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range11_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range11_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range11_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range12_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range12_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("speed_range12_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("exceed_speed_range_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("exceed_speed_range_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("exceed_speed_range_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("assist_brake_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("assist_brake_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("fatigue_driving_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("park_throttle_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("park_throttle_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("engine_work_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("driving_handbrake_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("driving_handbrake_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("driving_handbrake_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_handbrake_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_handbrake_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear01_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear01_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear01_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear01_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear02_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear02_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear02_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear02_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear03_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear03_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear03_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear03_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear04_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear04_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear04_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear04_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear05_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear05_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear05_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear05_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear06_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear06_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear06_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear06_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear07_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear07_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear07_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear07_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear08_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear08_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear08_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear08_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear09_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear09_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear09_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear09_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear10_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear10_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear10_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear10_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear11_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear11_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear11_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear11_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear12_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear12_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear12_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear12_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear13_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear13_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear13_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear13_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear14_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear14_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear14_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear14_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear15_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear15_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear15_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear15_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear16_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear16_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear16_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear16_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear_other_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear_other_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear_other_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gear_other_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range500_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range500_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range500_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range600_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range600_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range600_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range700_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range700_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range700_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range800_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range800_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range800_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range900_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range900_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range900_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1000_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1000_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1000_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1100_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1100_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1200_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1200_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1200_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1300_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1300_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1300_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1400_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1400_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1400_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1500_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1500_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1500_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1600_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1600_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1600_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1700_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1700_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1700_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1800_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1800_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1800_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1900_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1900_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range1900_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2000_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2000_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2000_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2100_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2100_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2200_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2200_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2200_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2300_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2300_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2300_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2400_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2400_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2400_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2500_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2500_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2500_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2600_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2600_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2600_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2700_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2700_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2700_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2800_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2800_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2800_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2900_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2900_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range2900_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range3000_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range3000_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range3000_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range_over3000_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range_over3000_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_range_over3000_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("altitude_ranges", DataTypes.StringType, true, Metadata.empty()));
        list.add(new StructField("clock_ranges", DataTypes.StringType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp85_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp95_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp105_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp110_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp115_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp120_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp125_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp130_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp135_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp140_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp145_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp_over150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp85_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp95_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp105_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp110_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp115_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp120_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp125_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp130_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp135_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp140_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp145_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp_over150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_work_water_temp", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_work_water_temp", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("work_water_temp_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_idle_water_temp", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_idle_water_temp", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("idle_water_temp_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent0_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent10_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent20_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent30_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent40_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent60_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent99_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("gas_open_percent100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque0_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque10_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque20_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque30_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque40_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque60_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque99_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_torque", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_torque", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("torque_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("torque_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("no_idle_rpm_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("no_idle_rpm_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("rpm_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("rpm_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_rpm", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_rpm", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat85_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat95_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat105_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat110_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat115_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat120_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat125_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat130_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat135_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat140_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat145_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat_over150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("iat_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("iat_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_iat", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_iat", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip50_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip60_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip70_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip80_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip100_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip110_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip120_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip130_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip140_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip_over150_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ip_sum", DataTypes.LongType, true, Metadata.empty()));
        list.add(new StructField("ip_count", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("max_ip", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("min_ip", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cross_cities", DataTypes.StringType, true, Metadata.empty()));
        list.add(new StructField("so90_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so90_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so90_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so120_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so120_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so120_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sr_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sr_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sr_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sr_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("lrog_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("lrog_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("lrog_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("lrog_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("hsb_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("hsb_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("hsb_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("csb_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("csb_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("csb_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("clutch_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("clutch_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("clutch_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_turning_number", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_turning_mil", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so90_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("so120_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("fatigue_driving_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("precise_flag", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("wload_type", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cross_cities_detail", DataTypes.StringType, true, Metadata.empty()));
        list.add(new StructField("fuel_100km", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("avg_speed_noidle", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("avg_speed", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("eco_proportion", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("brake_times", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，急加速
        list.add(new StructField("sharp_up_speed1_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed1_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed1_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_up_speed1_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，急减速
        list.add(new StructField("sharp_down_speed1_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed1_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed1_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("sharp_down_speed1_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，急转弯
        list.add(new StructField("sharp_turning1_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，超长怠速
        list.add(new StructField("long_idle_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("long_idle_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("long_idle_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，冷车运行
        list.add(new StructField("cold_running_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cold_running_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cold_running_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("cold_running_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，夜晚开车
        list.add(new StructField("night_running_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("night_running_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("night_running_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("night_running_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，引擎高转速
        list.add(new StructField("high_rotation_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("high_rotation_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("high_rotation_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("high_rotation_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，大油门
        list.add(new StructField("large_gas_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("large_gas_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("large_gas_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("large_gas_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，全油门
        list.add(new StructField("full_gas_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("full_gas_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("full_gas_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("full_gas_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，高速行驶
        list.add(new StructField("fast_speed_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("fast_speed_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("fast_speed_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("fast_speed_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，空档滑行
        list.add(new StructField("neutral_gear_coast1_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast1_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast1_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("neutral_gear_coast1_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，熄火滑行
        list.add(new StructField("flameout_coast_mileage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("flameout_coast_fuel", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("flameout_coast_duration", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("flameout_coast_number", DataTypes.IntegerType, true, Metadata.empty()));
        //东风新增，载重
        list.add(new StructField("amt_load", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("vecu_load", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("load_type", DataTypes.IntegerType, true, Metadata.empty()));
        //行程打分
        list.add(new StructField("totalScore", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("safeScore", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("ecoScore", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_start_oilPercentage", DataTypes.IntegerType, true, Metadata.empty()));
        list.add(new StructField("route_end_oilPercentage", DataTypes.IntegerType, true, Metadata.empty()));
        /*--end_schema*/

        return new StructType(list.toArray(new StructField[0]));
    }

    @Override
    public Row toRow(OuterStatisticData statisticData, StructType schema) {
        List<Object> list = new ArrayList<>();
        /*--start_row*/
        list.add(statisticData.getUid());
        list.add(statisticData.getTid());
        list.add(statisticData.getTripId());
        list.add(statisticData.getRouteStartTime());
        list.add(statisticData.getRouteStartLc());
        list.add(statisticData.getRouteStartLatitude());
        list.add(statisticData.getRouteStartLongitude());
        list.add(statisticData.getRouteStartHeight());
        list.add(statisticData.getRouteStartDirection());
        list.add(statisticData.getRouteStartMileage());
        list.add(statisticData.getRouteStartFuel());

        list.add(statisticData.getRouteEndTime());
        list.add(statisticData.getRouteEndLc());
        list.add(statisticData.getRouteEndLatitude());
        list.add(statisticData.getRouteEndLongitude());
        list.add(statisticData.getRouteEndHeight());
        list.add(statisticData.getRouteEndDirection());
        list.add(statisticData.getRouteEndMileage());
        list.add(statisticData.getRouteEndFuel());

        list.add(statisticData.getRouteIntegralMileage());
        list.add(statisticData.getRouteIntegralFuel());
        list.add(statisticData.getTripPower());
        list.add(statisticData.getStype());
        list.add(statisticData.getTripMileage());
        list.add(statisticData.getTripFuel());
        list.add(statisticData.getTripDuration());
        list.add(statisticData.getRouteStopFlag());
        list.add(statisticData.getCrossDayFlag());
        list.add(statisticData.getForceEndFlag());
        list.add(statisticData.getMaxSpeed());
        list.add(statisticData.getMinSpeed());
        list.add(statisticData.getMaxUsefulSpeed());
        list.add(statisticData.getMinUsefulSpeed());
        list.add(statisticData.getInGearCoastMileage());
        list.add(statisticData.getInGearCoastDuration());
        list.add(statisticData.getInGearCoastNumber());
        list.add(statisticData.getBrakeNumber());
        list.add(statisticData.getBrakeMileage());
        list.add(statisticData.getBrakeDuration());
        list.add(statisticData.getVehicleEstimatedLoad());
        list.add(statisticData.getNeutralGearCoastDuration());
        list.add(statisticData.getNeutralGearCoastFuel());
        list.add(statisticData.getNeutralGearCoastMileage());
        list.add(statisticData.getNeutralGearCoastNumber());
        list.add(statisticData.getIdleFuel());
        list.add(statisticData.getIdleDuration());
        list.add(statisticData.getIdleNumber());
        list.add(statisticData.getParkingPowerOnDuration());
        list.add(statisticData.getCityDrivingMileage());
        list.add(statisticData.getCityDrivingDuration());
        list.add(statisticData.getCityDrivingFuel());
        list.add(statisticData.getRuralDrivingMileage());
        list.add(statisticData.getRuralDrivingDuration());
        list.add(statisticData.getRuralDrivingFuel());
        list.add(statisticData.getEcoDrivingMileage());
        list.add(statisticData.getEcoDrivingDuration());
        list.add(statisticData.getEcoDrivingFuel());
        list.add(statisticData.getUpSlopeDrivingMileage());
        list.add(statisticData.getUpSlopeDrivingDuration());
        list.add(statisticData.getUpSlopeDrivingFuel());
        list.add(statisticData.getDownSlopeDrivingMileage());
        list.add(statisticData.getDownSlopeDrivingDuration());
        list.add(statisticData.getDownSlopeDrivingFuel());
        list.add(statisticData.getLevelRoadDrivingMileage());
        list.add(statisticData.getLevelRoadDrivingDuration());
        list.add(statisticData.getLevelRoadDrivingFuel());
        list.add(statisticData.getCruiseMileage());
        list.add(statisticData.getCruiseDuration());
        list.add(statisticData.getCruiseFuel());
        list.add(statisticData.getShiftGearsNumber());
        list.add(statisticData.getSharpDownSpeedDuration());
        list.add(statisticData.getSharpDownSpeedMileage());
        list.add(statisticData.getSharpDownSpeedNumber());
        list.add(statisticData.getSharpUpSpeedDuration());
        list.add(statisticData.getSharpUpSpeedMileage());
        list.add(statisticData.getSharpUpSpeedNumber());
        list.add(statisticData.getSharpUpSpeedFuel());
        list.add(statisticData.getSharpStepOnGasMileage());
        list.add(statisticData.getSharpStepOnGasDuration());
        list.add(statisticData.getSharpStepOnGasFuel());
        list.add(statisticData.getSharpStepOnGasNumber());
        list.add(statisticData.getVehicleParkNumber());
        list.add(statisticData.getVehicleStartNumber());
        list.add(statisticData.getVehicleStartMileage());
        list.add(statisticData.getVehicleStartDuration());
        list.add(statisticData.getVehicleStartFuel());
        list.add(statisticData.getVehicleColdStartNumber());
        list.add(statisticData.getVehicleColdStartMileage());
        list.add(statisticData.getVehicleColdStartDuration());
        list.add(statisticData.getVehicleColdStartFuel());
        list.add(statisticData.getChargeFuelPercent());
        list.add(statisticData.getChargeFuel());
        list.add(statisticData.getLeakFuelPercent());
        list.add(statisticData.getLeakFuel());
        list.add(statisticData.getGasStabilityNumber());
        list.add(statisticData.getGasStabilityDuration());
        list.add(statisticData.getGasOpenPercentSum());
        list.add(statisticData.getGasOpenPercentCount());
        list.add(statisticData.getSpeedRange01Mileage());
        list.add(statisticData.getSpeedRange01Duration());
        list.add(statisticData.getSpeedRange01Fuel());
        list.add(statisticData.getSpeedRange02Mileage());
        list.add(statisticData.getSpeedRange02Duration());
        list.add(statisticData.getSpeedRange02Fuel());
        list.add(statisticData.getSpeedRange03Mileage());
        list.add(statisticData.getSpeedRange03Duration());
        list.add(statisticData.getSpeedRange03Fuel());
        list.add(statisticData.getSpeedRange04Mileage());
        list.add(statisticData.getSpeedRange04Duration());
        list.add(statisticData.getSpeedRange04Fuel());
        list.add(statisticData.getSpeedRange05Mileage());
        list.add(statisticData.getSpeedRange05Duration());
        list.add(statisticData.getSpeedRange05Fuel());
        list.add(statisticData.getSpeedRange06Mileage());
        list.add(statisticData.getSpeedRange06Duration());
        list.add(statisticData.getSpeedRange06Fuel());
        list.add(statisticData.getSpeedRange07Mileage());
        list.add(statisticData.getSpeedRange07Duration());
        list.add(statisticData.getSpeedRange07Fuel());
        list.add(statisticData.getSpeedRange08Mileage());
        list.add(statisticData.getSpeedRange08Duration());
        list.add(statisticData.getSpeedRange08Fuel());
        list.add(statisticData.getSpeedRange09Mileage());
        list.add(statisticData.getSpeedRange09Duration());
        list.add(statisticData.getSpeedRange09Fuel());
        list.add(statisticData.getSpeedRange10Mileage());
        list.add(statisticData.getSpeedRange10Duration());
        list.add(statisticData.getSpeedRange10Fuel());
        list.add(statisticData.getSpeedRange11Mileage());
        list.add(statisticData.getSpeedRange11Duration());
        list.add(statisticData.getSpeedRange11Fuel());
        list.add(statisticData.getSpeedRange12Mileage());
        list.add(statisticData.getSpeedRange12Duration());
        list.add(statisticData.getSpeedRange12Fuel());
        list.add(statisticData.getExceedSpeedRangeMileage());
        list.add(statisticData.getExceedSpeedRangeDuration());
        list.add(statisticData.getExceedSpeedRangeFuel());
        list.add(statisticData.getAssistBrakeMileage());
        list.add(statisticData.getAssistBrakeDuration());
        list.add(statisticData.getFatigueDrivingNumber());
        list.add(statisticData.getParkThrottleDuration());
        list.add(statisticData.getParkThrottleFuel());
        list.add(statisticData.getRouteIntegralDuration());
        list.add(statisticData.getDrivingHandbrakeNumber());
        list.add(statisticData.getDrivingHandbrakeDuration());
        list.add(statisticData.getDrivingHandbrakeMileage());
        list.add(statisticData.getIdleHandbrakeNumber());
        list.add(statisticData.getIdleHandbrakeDuration());
        list.add(statisticData.getGear01Mileage());
        list.add(statisticData.getGear01Fuel());
        list.add(statisticData.getGear01Duration());
        list.add(statisticData.getGear01Number());
        list.add(statisticData.getGear02Mileage());
        list.add(statisticData.getGear02Fuel());
        list.add(statisticData.getGear02Duration());
        list.add(statisticData.getGear02Number());
        list.add(statisticData.getGear03Mileage());
        list.add(statisticData.getGear03Fuel());
        list.add(statisticData.getGear03Duration());
        list.add(statisticData.getGear03Number());
        list.add(statisticData.getGear04Mileage());
        list.add(statisticData.getGear04Fuel());
        list.add(statisticData.getGear04Duration());
        list.add(statisticData.getGear04Number());
        list.add(statisticData.getGear05Mileage());
        list.add(statisticData.getGear05Fuel());
        list.add(statisticData.getGear05Duration());
        list.add(statisticData.getGear05Number());
        list.add(statisticData.getGear06Mileage());
        list.add(statisticData.getGear06Fuel());
        list.add(statisticData.getGear06Duration());
        list.add(statisticData.getGear06Number());
        list.add(statisticData.getGear07Mileage());
        list.add(statisticData.getGear07Fuel());
        list.add(statisticData.getGear07Duration());
        list.add(statisticData.getGear07Number());
        list.add(statisticData.getGear08Mileage());
        list.add(statisticData.getGear08Fuel());
        list.add(statisticData.getGear08Duration());
        list.add(statisticData.getGear08Number());
        list.add(statisticData.getGear09Mileage());
        list.add(statisticData.getGear09Fuel());
        list.add(statisticData.getGear09Duration());
        list.add(statisticData.getGear09Number());
        list.add(statisticData.getGear10Mileage());
        list.add(statisticData.getGear10Fuel());
        list.add(statisticData.getGear10Duration());
        list.add(statisticData.getGear10Number());
        list.add(statisticData.getGear11Mileage());
        list.add(statisticData.getGear11Fuel());
        list.add(statisticData.getGear11Duration());
        list.add(statisticData.getGear11Number());
        list.add(statisticData.getGear12Mileage());
        list.add(statisticData.getGear12Fuel());
        list.add(statisticData.getGear12Duration());
        list.add(statisticData.getGear12Number());
        list.add(statisticData.getGear13Mileage());
        list.add(statisticData.getGear13Fuel());
        list.add(statisticData.getGear13Duration());
        list.add(statisticData.getGear13Number());
        list.add(statisticData.getGear14Mileage());
        list.add(statisticData.getGear14Fuel());
        list.add(statisticData.getGear14Duration());
        list.add(statisticData.getGear14Number());
        list.add(statisticData.getGear15Mileage());
        list.add(statisticData.getGear15Fuel());
        list.add(statisticData.getGear15Duration());
        list.add(statisticData.getGear15Number());
        list.add(statisticData.getGear16Mileage());
        list.add(statisticData.getGear16Fuel());
        list.add(statisticData.getGear16Duration());
        list.add(statisticData.getGear16Number());
        list.add(statisticData.getGearOtherMileage());
        list.add(statisticData.getGearOtherFuel());
        list.add(statisticData.getGearOtherDuration());
        list.add(statisticData.getGearOtherNumber());
        list.add(statisticData.getRpmRange500Mileage());
        list.add(statisticData.getRpmRange500Fuel());
        list.add(statisticData.getRpmRange500Duration());
        list.add(statisticData.getRpmRange600Mileage());
        list.add(statisticData.getRpmRange600Fuel());
        list.add(statisticData.getRpmRange600Duration());
        list.add(statisticData.getRpmRange700Mileage());
        list.add(statisticData.getRpmRange700Fuel());
        list.add(statisticData.getRpmRange700Duration());
        list.add(statisticData.getRpmRange800Mileage());
        list.add(statisticData.getRpmRange800Fuel());
        list.add(statisticData.getRpmRange800Duration());
        list.add(statisticData.getRpmRange900Mileage());
        list.add(statisticData.getRpmRange900Fuel());
        list.add(statisticData.getRpmRange900Duration());
        list.add(statisticData.getRpmRange1000Mileage());
        list.add(statisticData.getRpmRange1000Fuel());
        list.add(statisticData.getRpmRange1000Duration());
        list.add(statisticData.getRpmRange1100Mileage());
        list.add(statisticData.getRpmRange1100Fuel());
        list.add(statisticData.getRpmRange1100Duration());
        list.add(statisticData.getRpmRange1200Mileage());
        list.add(statisticData.getRpmRange1200Fuel());
        list.add(statisticData.getRpmRange1200Duration());
        list.add(statisticData.getRpmRange1300Mileage());
        list.add(statisticData.getRpmRange1300Fuel());
        list.add(statisticData.getRpmRange1300Duration());
        list.add(statisticData.getRpmRange1400Mileage());
        list.add(statisticData.getRpmRange1400Fuel());
        list.add(statisticData.getRpmRange1400Duration());
        list.add(statisticData.getRpmRange1500Mileage());
        list.add(statisticData.getRpmRange1500Fuel());
        list.add(statisticData.getRpmRange1500Duration());
        list.add(statisticData.getRpmRange1600Mileage());
        list.add(statisticData.getRpmRange1600Fuel());
        list.add(statisticData.getRpmRange1600Duration());
        list.add(statisticData.getRpmRange1700Mileage());
        list.add(statisticData.getRpmRange1700Fuel());
        list.add(statisticData.getRpmRange1700Duration());
        list.add(statisticData.getRpmRange1800Mileage());
        list.add(statisticData.getRpmRange1800Fuel());
        list.add(statisticData.getRpmRange1800Duration());
        list.add(statisticData.getRpmRange1900Mileage());
        list.add(statisticData.getRpmRange1900Fuel());
        list.add(statisticData.getRpmRange1900Duration());
        list.add(statisticData.getRpmRange2000Mileage());
        list.add(statisticData.getRpmRange2000Fuel());
        list.add(statisticData.getRpmRange2000Duration());
        list.add(statisticData.getRpmRange2100Mileage());
        list.add(statisticData.getRpmRange2100Fuel());
        list.add(statisticData.getRpmRange2100Duration());
        list.add(statisticData.getRpmRange2200Mileage());
        list.add(statisticData.getRpmRange2200Fuel());
        list.add(statisticData.getRpmRange2200Duration());
        list.add(statisticData.getRpmRange2300Mileage());
        list.add(statisticData.getRpmRange2300Fuel());
        list.add(statisticData.getRpmRange2300Duration());
        list.add(statisticData.getRpmRange2400Mileage());
        list.add(statisticData.getRpmRange2400Fuel());
        list.add(statisticData.getRpmRange2400Duration());
        list.add(statisticData.getRpmRange2500Mileage());
        list.add(statisticData.getRpmRange2500Fuel());
        list.add(statisticData.getRpmRange2500Duration());
        list.add(statisticData.getRpmRange2600Mileage());
        list.add(statisticData.getRpmRange2600Fuel());
        list.add(statisticData.getRpmRange2600Duration());
        list.add(statisticData.getRpmRange2700Mileage());
        list.add(statisticData.getRpmRange2700Fuel());
        list.add(statisticData.getRpmRange2700Duration());
        list.add(statisticData.getRpmRange2800Mileage());
        list.add(statisticData.getRpmRange2800Fuel());
        list.add(statisticData.getRpmRange2800Duration());
        list.add(statisticData.getRpmRange2900Mileage());
        list.add(statisticData.getRpmRange2900Fuel());
        list.add(statisticData.getRpmRange2900Duration());
        list.add(statisticData.getRpmRange3000Mileage());
        list.add(statisticData.getRpmRange3000Fuel());
        list.add(statisticData.getRpmRange3000Duration());
        list.add(statisticData.getRpmRangeOver3000Mileage());
        list.add(statisticData.getRpmRangeOver3000Fuel());
        list.add(statisticData.getRpmRangeOver3000Duration());
        list.add(JsonUtils.toJsonStr(statisticData.getAltitudeRanges()));
        list.add(JsonUtils.toJsonStr(statisticData.getClockRanges()));
        list.add(statisticData.getWorkWaterTemp50Duration());
        list.add(statisticData.getWorkWaterTemp70Duration());
        list.add(statisticData.getWorkWaterTemp80Duration());
        list.add(statisticData.getWorkWaterTemp85Duration());
        list.add(statisticData.getWorkWaterTemp90Duration());
        list.add(statisticData.getWorkWaterTemp95Duration());
        list.add(statisticData.getWorkWaterTemp100Duration());
        list.add(statisticData.getWorkWaterTemp105Duration());
        list.add(statisticData.getWorkWaterTemp110Duration());
        list.add(statisticData.getWorkWaterTemp115Duration());
        list.add(statisticData.getWorkWaterTemp120Duration());
        list.add(statisticData.getWorkWaterTemp125Duration());
        list.add(statisticData.getWorkWaterTemp130Duration());
        list.add(statisticData.getWorkWaterTemp135Duration());
        list.add(statisticData.getWorkWaterTemp140Duration());
        list.add(statisticData.getWorkWaterTemp145Duration());
        list.add(statisticData.getWorkWaterTemp150Duration());
        list.add(statisticData.getWorkWaterTempOver150Duration());
        list.add(statisticData.getIdleWaterTemp50Duration());
        list.add(statisticData.getIdleWaterTemp70Duration());
        list.add(statisticData.getIdleWaterTemp80Duration());
        list.add(statisticData.getIdleWaterTemp85Duration());
        list.add(statisticData.getIdleWaterTemp90Duration());
        list.add(statisticData.getIdleWaterTemp95Duration());
        list.add(statisticData.getIdleWaterTemp100Duration());
        list.add(statisticData.getIdleWaterTemp105Duration());
        list.add(statisticData.getIdleWaterTemp110Duration());
        list.add(statisticData.getIdleWaterTemp115Duration());
        list.add(statisticData.getIdleWaterTemp120Duration());
        list.add(statisticData.getIdleWaterTemp125Duration());
        list.add(statisticData.getIdleWaterTemp130Duration());
        list.add(statisticData.getIdleWaterTemp135Duration());
        list.add(statisticData.getIdleWaterTemp140Duration());
        list.add(statisticData.getIdleWaterTemp145Duration());
        list.add(statisticData.getIdleWaterTemp150Duration());
        list.add(statisticData.getIdleWaterTempOver150Duration());
        list.add(statisticData.getMaxWorkWaterTemp());
        list.add(statisticData.getMinWorkWaterTemp());
        list.add(statisticData.getWorkWaterTempSum());
        list.add(statisticData.getWorkWaterTempCount());
        list.add(statisticData.getMaxIdleWaterTemp());
        list.add(statisticData.getMinIdleWaterTemp());
        list.add(statisticData.getIdleWaterTempSum());
        list.add(statisticData.getIdleWaterTempCount());
        list.add(statisticData.getGasOpenPercent0Duration());
        list.add(statisticData.getGasOpenPercent10Duration());
        list.add(statisticData.getGasOpenPercent20Duration());
        list.add(statisticData.getGasOpenPercent30Duration());
        list.add(statisticData.getGasOpenPercent40Duration());
        list.add(statisticData.getGasOpenPercent50Duration());
        list.add(statisticData.getGasOpenPercent60Duration());
        list.add(statisticData.getGasOpenPercent70Duration());
        list.add(statisticData.getGasOpenPercent80Duration());
        list.add(statisticData.getGasOpenPercent90Duration());
        list.add(statisticData.getGasOpenPercent99Duration());
        list.add(statisticData.getGasOpenPercent100Duration());
        list.add(statisticData.getTorque0Duration());
        list.add(statisticData.getTorque10Duration());
        list.add(statisticData.getTorque20Duration());
        list.add(statisticData.getTorque30Duration());
        list.add(statisticData.getTorque40Duration());
        list.add(statisticData.getTorque50Duration());
        list.add(statisticData.getTorque60Duration());
        list.add(statisticData.getTorque70Duration());
        list.add(statisticData.getTorque80Duration());
        list.add(statisticData.getTorque90Duration());
        list.add(statisticData.getTorque99Duration());
        list.add(statisticData.getTorque100Duration());
        list.add(statisticData.getMaxTorque());
        list.add(statisticData.getMinTorque());
        list.add(statisticData.getTorqueSum());
        list.add(statisticData.getTorqueCount());
        list.add(statisticData.getNoIdleRpmSum());
        list.add(statisticData.getNoIdleRpmCount());
        list.add(statisticData.getRpmSum());
        list.add(statisticData.getRpmCount());
        list.add(statisticData.getMaxRpm());
        list.add(statisticData.getMinRpm());
        list.add(statisticData.getIat50Duration());
        list.add(statisticData.getIat70Duration());
        list.add(statisticData.getIat80Duration());
        list.add(statisticData.getIat85Duration());
        list.add(statisticData.getIat90Duration());
        list.add(statisticData.getIat95Duration());
        list.add(statisticData.getIat100Duration());
        list.add(statisticData.getIat105Duration());
        list.add(statisticData.getIat110Duration());
        list.add(statisticData.getIat115Duration());
        list.add(statisticData.getIat120Duration());
        list.add(statisticData.getIat125Duration());
        list.add(statisticData.getIat130Duration());
        list.add(statisticData.getIat135Duration());
        list.add(statisticData.getIat140Duration());
        list.add(statisticData.getIat145Duration());
        list.add(statisticData.getIat150Duration());
        list.add(statisticData.getIatOver150Duration());
        list.add(statisticData.getIatSum());
        list.add(statisticData.getIatCount());
        list.add(statisticData.getMaxIat());
        list.add(statisticData.getMinIat());
        list.add(statisticData.getIp50Duration());
        list.add(statisticData.getIp60Duration());
        list.add(statisticData.getIp70Duration());
        list.add(statisticData.getIp80Duration());
        list.add(statisticData.getIp90Duration());
        list.add(statisticData.getIp100Duration());
        list.add(statisticData.getIp110Duration());
        list.add(statisticData.getIp120Duration());
        list.add(statisticData.getIp130Duration());
        list.add(statisticData.getIp140Duration());
        list.add(statisticData.getIp150Duration());
        list.add(statisticData.getIpOver150Duration());
        list.add(statisticData.getIpSum());
        list.add(statisticData.getIpCount());
        list.add(statisticData.getMaxIp());
        list.add(statisticData.getMinIp());
        list.add(statisticData.getCrossCities());
        list.add(statisticData.getSo90Number());
        list.add(statisticData.getSo90Duration());
        list.add(statisticData.getSo90Mileage());
        list.add(statisticData.getSo120Number());
        list.add(statisticData.getSo120Duration());
        list.add(statisticData.getSo120Mileage());
        list.add(statisticData.getSrNumber());
        list.add(statisticData.getSrDuration());
        list.add(statisticData.getSrMileage());
        list.add(statisticData.getSrFuel());
        list.add(statisticData.getLrogNumber());
        list.add(statisticData.getLrogDuration());
        list.add(statisticData.getLrogMileage());
        list.add(statisticData.getLrogFuel());
        list.add(statisticData.getHsbNumber());
        list.add(statisticData.getHsbDuration());
        list.add(statisticData.getHsbMileage());
        list.add(statisticData.getCsbNumber());
        list.add(statisticData.getCsbDuration());
        list.add(statisticData.getCsbMileage());
        list.add(statisticData.getClutchNumber());
        list.add(statisticData.getClutchDuration());
        list.add(statisticData.getClutchMileage());
        list.add(statisticData.getSharpTurningNumber());
        list.add(statisticData.getSharpTurningMil());
        list.add(statisticData.getSo90Fuel());
        list.add(statisticData.getSo120Fuel());
        list.add(statisticData.getFatigueDrivingDuration());
        list.add(statisticData.getPreciseFlag());
        list.add(statisticData.getWloadType());
        list.add(JsonUtils.toJsonStr(statisticData.getCrossCitiesDetail()));
        list.add(statisticData.fuel100KM());
        list.add(statisticData.avgSpeedNoIdle());
        list.add(statisticData.avgSpeed());
        list.add(statisticData.ecoProportion());
        list.add(statisticData.brakeTimes());
        //东风新增字段，急加速
        list.add(statisticData.getSharpUpSpeedMileage_DF());
        list.add(statisticData.getSharpUpSpeedFuel_DF());
        list.add(statisticData.getSharpUpSpeedDuration_DF());
        list.add(statisticData.getSharpUpSpeedNumber_DF());
        //东风新增字段，急减速
        list.add(statisticData.getSharpDownSpeedMileage_DF());
        list.add(statisticData.getSharpDownSpeedFuel_DF());
        list.add(statisticData.getSharpDownSpeedDuration_DF());
        list.add(statisticData.getSharpDownSpeedNumber_DF());
        //东风新增字段，急转弯
        list.add(statisticData.getSharpTurningNumber_DF());
        //东风新增字段，超长怠速
        list.add(statisticData.getLongIdleFuel_DF());
        list.add(statisticData.getLongIdleDuration_DF());
        list.add(statisticData.getLongIdleNumber_DF());
        //东风新增，冷车启动
        list.add(statisticData.getColdRunningMileage_DF());
        list.add(statisticData.getColdRunningFuel_DF());
        list.add(statisticData.getColdRunningDuration_DF());
        list.add(statisticData.getColdRunningNumber_DF());
        //东风新增，夜晚开车
        list.add(statisticData.getNightRunningMileage_DF());
        list.add(statisticData.getNightRunningFuel_DF());
        list.add(statisticData.getNightRunningDuration_DF());
        list.add(statisticData.getNightRunningNumber_DF());
        //东风新增，引擎高转速
        list.add(statisticData.getHighRotationMileage_DF());
        list.add(statisticData.getHighRotationFuel_DF());
        list.add(statisticData.getHighRotationDuration_DF());
        list.add(statisticData.getHighRotationNumber_DF());
        //东风新增，大油门
        list.add(statisticData.getLargeGasMileage_DF());
        list.add(statisticData.getLargeGasFuel_DF());
        list.add(statisticData.getLargeGasDuration_DF());
        list.add(statisticData.getLargeGasNumber_DF());
        //东风新增，全油门
        list.add(statisticData.getFullGasMileage_DF());
        list.add(statisticData.getFullGasFuel_DF());
        list.add(statisticData.getFullGasDuration_DF());
        list.add(statisticData.getFullGasNumber_DF());
        //东风新增，高速行驶
        list.add(statisticData.getFastSpeedMileage_DF());
        list.add(statisticData.getFastSpeedFuel_DF());
        list.add(statisticData.getFastSpeedDuration_DF());
        list.add(statisticData.getFastSpeedNumber_DF());
        //东风新增，空档滑行
        list.add(statisticData.getNeutralGearCoastMileage_DF());
        list.add(statisticData.getNeutralGearCoastFuel_DF());
        list.add(statisticData.getNeutralGearCoastDuration_DF());
        list.add(statisticData.getNeutralGearCoastNumber_DF());
        //东风新增，空档滑行
        list.add(statisticData.getFlameoutCoastMileage_DF());
        list.add(statisticData.getFlameoutCoastFuel_DF());
        list.add(statisticData.getFlameoutCoastDuration_DF());
        list.add(statisticData.getFlameoutCoastNumber_DF());
        //东风新增，载重
        list.add(statisticData.getAmtLoad_DF());
        list.add(statisticData.getVecuLoad_DF());
        list.add(statisticData.getLoadType_DF());
        //行程打分
        list.add(statisticData.getTotalScore());
        list.add(statisticData.getSafeScore());
        list.add(statisticData.getEcoScore());
        list.add(statisticData.getRouteStartOilPercentage());
        list.add(statisticData.getRouteEndOilPercentage());
        /*--end_row*/

        return null==schema ? new GenericRow(list.toArray()) : new GenericRowWithSchema(list.toArray(), schema);
    }

    @Override
    public OuterStatisticData fromRow(Row row) {
        OuterStatisticData m = new OuterStatisticData();
        /*--start_deserialization*/
        m.setUid(getLong(row,"uid"));
        m.setTid(getLong(row,"tid"));
        m.setTripId(getInteger(row,"trip_id"));
        m.setRouteStartTime(getLong(row,"route_start_time"));
        m.setRouteStartLc(getInteger(row,"route_start_lc"));
        m.setRouteStartLatitude(getInteger(row,"route_start_latitude"));
        m.setRouteStartLongitude(getInteger(row,"route_start_longitude"));
        m.setRouteStartHeight(getInteger(row,"route_start_height"));
        m.setRouteStartDirection(getInteger(row,"route_start_direction"));
        m.setRouteStartMileage(getInteger(row,"route_start_mileage"));
        m.setRouteStartFuel(getInteger(row,"route_start_fuel"));
        m.setRouteEndTime(getLong(row,"route_end_time"));
        m.setRouteEndLc(getInteger(row,"route_end_lc"));
        m.setRouteEndLatitude(getInteger(row,"route_end_latitude"));
        m.setRouteEndLongitude(getInteger(row,"route_end_longitude"));
        m.setRouteEndHeight(getInteger(row,"route_end_height"));
        m.setRouteEndDirection(getInteger(row,"route_end_direction"));
        m.setRouteEndMileage(getInteger(row,"route_end_mileage"));
        m.setRouteEndFuel(getInteger(row,"route_end_fuel"));
        m.setRouteIntegralMileage(getInteger(row,"route_integral_mileage"));
        m.setRouteIntegralFuel(getInteger(row,"route_integral_fuel"));
        m.setTripPower(getInteger(row,"trip_power"));
        m.setStype(getInteger(row,"stype"));
        m.setTripMileage(getInteger(row,"trip_mileage"));
        m.setTripFuel(getInteger(row,"trip_fuel"));
        m.setTripDuration(getInteger(row,"trip_duration"));
        m.setRouteStopFlag(getInteger(row,"route_stop_flag"));
        m.setCrossDayFlag(getInteger(row,"cross_day_flag"));
        m.setForceEndFlag(getInteger(row,"force_end_flag"));
        m.setMaxSpeed(getInteger(row,"max_speed"));
        m.setMinSpeed(getInteger(row,"min_speed"));
        m.setMaxUsefulSpeed(getInteger(row,"max_useful_speed"));
        m.setMinUsefulSpeed(getInteger(row,"min_useful_speed"));
        m.setInGearCoastMileage(getInteger(row,"in_gear_coast_mileage"));
        m.setInGearCoastDuration(getInteger(row,"in_gear_coast_duration"));
        m.setInGearCoastNumber(getInteger(row,"in_gear_coast_number"));
        m.setBrakeNumber(getInteger(row,"brake_number"));
        m.setBrakeMileage(getInteger(row,"brake_mileage"));
        m.setBrakeDuration(getInteger(row,"brake_duration"));
        m.setVehicleEstimatedLoad(getInteger(row,"vehicle_estimated_load"));
        m.setNeutralGearCoastDuration(getInteger(row,"neutral_gear_coast_duration"));
        m.setNeutralGearCoastFuel(getInteger(row,"neutral_gear_coast_fuel"));
        m.setNeutralGearCoastMileage(getInteger(row,"neutral_gear_coast_mileage"));
        m.setNeutralGearCoastNumber(getInteger(row,"neutral_gear_coast_number"));
        m.setIdleFuel(getInteger(row,"idle_fuel"));
        m.setIdleDuration(getInteger(row,"idle_duration"));
        m.setIdleNumber(getInteger(row,"idle_number"));
        m.setParkingPowerOnDuration(getInteger(row,"parking_power_on_duration"));
        m.setCityDrivingMileage(getInteger(row,"city_driving_mileage"));
        m.setCityDrivingDuration(getInteger(row,"city_driving_duration"));
        m.setCityDrivingFuel(getInteger(row,"city_driving_fuel"));
        m.setRuralDrivingMileage(getInteger(row,"rural_driving_mileage"));
        m.setRuralDrivingDuration(getInteger(row,"rural_driving_duration"));
        m.setRuralDrivingFuel(getInteger(row,"rural_driving_fuel"));
        m.setEcoDrivingMileage(getInteger(row,"eco_driving_mileage"));
        m.setEcoDrivingDuration(getInteger(row,"eco_driving_duration"));
        m.setEcoDrivingFuel(getInteger(row,"eco_driving_fuel"));
        m.setUpSlopeDrivingMileage(getInteger(row,"up_slope_driving_mileage"));
        m.setUpSlopeDrivingDuration(getInteger(row,"up_slope_driving_duration"));
        m.setUpSlopeDrivingFuel(getInteger(row,"up_slope_driving_fuel"));
        m.setDownSlopeDrivingMileage(getInteger(row,"down_slope_driving_mileage"));
        m.setDownSlopeDrivingDuration(getInteger(row,"down_slope_driving_duration"));
        m.setDownSlopeDrivingFuel(getInteger(row,"down_slope_driving_fuel"));
        m.setLevelRoadDrivingMileage(getInteger(row,"level_road_driving_mileage"));
        m.setLevelRoadDrivingDuration(getInteger(row,"level_road_driving_duration"));
        m.setLevelRoadDrivingFuel(getInteger(row,"level_road_driving_fuel"));
        m.setCruiseMileage(getInteger(row,"cruise_mileage"));
        m.setCruiseDuration(getInteger(row,"cruise_duration"));
        m.setCruiseFuel(getInteger(row,"cruise_fuel"));
        m.setShiftGearsNumber(getInteger(row,"shift_gears_number"));
        m.setSharpDownSpeedDuration(getInteger(row,"sharp_down_speed_duration"));
        m.setSharpDownSpeedMileage(getInteger(row,"sharp_down_speed_mileage"));
        m.setSharpDownSpeedNumber(getInteger(row,"sharp_down_speed_number"));
        m.setSharpUpSpeedDuration(getInteger(row,"sharp_up_speed_duration"));
        m.setSharpUpSpeedMileage(getInteger(row,"sharp_up_speed_mileage"));
        m.setSharpUpSpeedNumber(getInteger(row,"sharp_up_speed_number"));
        m.setSharpUpSpeedFuel(getInteger(row,"sharp_up_speed_fuel"));
        m.setSharpStepOnGasMileage(getInteger(row,"sharp_step_on_gas_mileage"));
        m.setSharpStepOnGasDuration(getInteger(row,"sharp_step_on_gas_duration"));
        m.setSharpStepOnGasFuel(getInteger(row,"sharp_step_on_gas_fuel"));
        m.setSharpStepOnGasNumber(getInteger(row,"sharp_step_on_gas_number"));
        m.setVehicleParkNumber(getInteger(row,"vehicle_park_number"));
        m.setVehicleStartNumber(getInteger(row,"vehicle_start_number"));
        m.setVehicleStartMileage(getInteger(row,"vehicle_start_mileage"));
        m.setVehicleStartDuration(getInteger(row,"vehicle_start_duration"));
        m.setVehicleStartFuel(getInteger(row,"vehicle_start_fuel"));
        m.setVehicleColdStartNumber(getInteger(row,"vehicle_cold_start_number"));
        m.setVehicleColdStartMileage(getInteger(row,"vehicle_cold_start_mileage"));
        m.setVehicleColdStartDuration(getInteger(row,"vehicle_cold_start_duration"));
        m.setVehicleColdStartFuel(getInteger(row,"vehicle_cold_start_fuel"));
        m.setChargeFuelPercent(getInteger(row,"charge_fuel_percent"));
        m.setChargeFuel(getInteger(row,"charge_fuel"));
        m.setLeakFuelPercent(getInteger(row,"leak_fuel_percent"));
        m.setLeakFuel(getInteger(row,"leak_fuel"));
        m.setGasStabilityNumber(getInteger(row,"gas_stability_number"));
        m.setGasStabilityDuration(getInteger(row,"gas_stability_duration"));
        m.setGasOpenPercentSum(getLong(row,"gas_open_percent_sum"));
        m.setGasOpenPercentCount(getInteger(row,"gas_open_percent_count"));
        m.setSpeedRange01Mileage(getInteger(row,"speed_range01_mileage"));
        m.setSpeedRange01Duration(getInteger(row,"speed_range01_duration"));
        m.setSpeedRange01Fuel(getInteger(row,"speed_range01_fuel"));
        m.setSpeedRange02Mileage(getInteger(row,"speed_range02_mileage"));
        m.setSpeedRange02Duration(getInteger(row,"speed_range02_duration"));
        m.setSpeedRange02Fuel(getInteger(row,"speed_range02_fuel"));
        m.setSpeedRange03Mileage(getInteger(row,"speed_range03_mileage"));
        m.setSpeedRange03Duration(getInteger(row,"speed_range03_duration"));
        m.setSpeedRange03Fuel(getInteger(row,"speed_range03_fuel"));
        m.setSpeedRange04Mileage(getInteger(row,"speed_range04_mileage"));
        m.setSpeedRange04Duration(getInteger(row,"speed_range04_duration"));
        m.setSpeedRange04Fuel(getInteger(row,"speed_range04_fuel"));
        m.setSpeedRange05Mileage(getInteger(row,"speed_range05_mileage"));
        m.setSpeedRange05Duration(getInteger(row,"speed_range05_duration"));
        m.setSpeedRange05Fuel(getInteger(row,"speed_range05_fuel"));
        m.setSpeedRange06Mileage(getInteger(row,"speed_range06_mileage"));
        m.setSpeedRange06Duration(getInteger(row,"speed_range06_duration"));
        m.setSpeedRange06Fuel(getInteger(row,"speed_range06_fuel"));
        m.setSpeedRange07Mileage(getInteger(row,"speed_range07_mileage"));
        m.setSpeedRange07Duration(getInteger(row,"speed_range07_duration"));
        m.setSpeedRange07Fuel(getInteger(row,"speed_range07_fuel"));
        m.setSpeedRange08Mileage(getInteger(row,"speed_range08_mileage"));
        m.setSpeedRange08Duration(getInteger(row,"speed_range08_duration"));
        m.setSpeedRange08Fuel(getInteger(row,"speed_range08_fuel"));
        m.setSpeedRange09Mileage(getInteger(row,"speed_range09_mileage"));
        m.setSpeedRange09Duration(getInteger(row,"speed_range09_duration"));
        m.setSpeedRange09Fuel(getInteger(row,"speed_range09_fuel"));
        m.setSpeedRange10Mileage(getInteger(row,"speed_range10_mileage"));
        m.setSpeedRange10Duration(getInteger(row,"speed_range10_duration"));
        m.setSpeedRange10Fuel(getInteger(row,"speed_range10_fuel"));
        m.setSpeedRange11Mileage(getInteger(row,"speed_range11_mileage"));
        m.setSpeedRange11Duration(getInteger(row,"speed_range11_duration"));
        m.setSpeedRange11Fuel(getInteger(row,"speed_range11_fuel"));
        m.setSpeedRange12Mileage(getInteger(row,"speed_range12_mileage"));
        m.setSpeedRange12Duration(getInteger(row,"speed_range12_duration"));
        m.setSpeedRange12Fuel(getInteger(row,"speed_range12_fuel"));
        m.setExceedSpeedRangeMileage(getInteger(row,"exceed_speed_range_mileage"));
        m.setExceedSpeedRangeDuration(getInteger(row,"exceed_speed_range_duration"));
        m.setExceedSpeedRangeFuel(getInteger(row,"exceed_speed_range_fuel"));
        m.setAssistBrakeMileage(getInteger(row,"assist_brake_mileage"));
        m.setAssistBrakeDuration(getInteger(row,"assist_brake_duration"));
        m.setFatigueDrivingNumber(getInteger(row,"fatigue_driving_number"));
        m.setParkThrottleDuration(getInteger(row,"park_throttle_duration"));
        m.setParkThrottleFuel(getInteger(row,"park_throttle_fuel"));
        m.setRouteIntegralDuration(getInteger(row,"engine_work_duration"));
        m.setDrivingHandbrakeNumber(getInteger(row,"driving_handbrake_number"));
        m.setDrivingHandbrakeDuration(getInteger(row,"driving_handbrake_duration"));
        m.setDrivingHandbrakeMileage(getInteger(row,"driving_handbrake_mileage"));
        m.setIdleHandbrakeNumber(getInteger(row,"idle_handbrake_number"));
        m.setIdleHandbrakeDuration(getInteger(row,"idle_handbrake_duration"));
        m.setGear01Mileage(getInteger(row,"gear01_mileage"));
        m.setGear01Fuel(getInteger(row,"gear01_fuel"));
        m.setGear01Duration(getInteger(row,"gear01_duration"));
        m.setGear01Number(getInteger(row,"gear01_number"));
        m.setGear02Mileage(getInteger(row,"gear02_mileage"));
        m.setGear02Fuel(getInteger(row,"gear02_fuel"));
        m.setGear02Duration(getInteger(row,"gear02_duration"));
        m.setGear02Number(getInteger(row,"gear02_number"));
        m.setGear03Mileage(getInteger(row,"gear03_mileage"));
        m.setGear03Fuel(getInteger(row,"gear03_fuel"));
        m.setGear03Duration(getInteger(row,"gear03_duration"));
        m.setGear03Number(getInteger(row,"gear03_number"));
        m.setGear04Mileage(getInteger(row,"gear04_mileage"));
        m.setGear04Fuel(getInteger(row,"gear04_fuel"));
        m.setGear04Duration(getInteger(row,"gear04_duration"));
        m.setGear04Number(getInteger(row,"gear04_number"));
        m.setGear05Mileage(getInteger(row,"gear05_mileage"));
        m.setGear05Fuel(getInteger(row,"gear05_fuel"));
        m.setGear05Duration(getInteger(row,"gear05_duration"));
        m.setGear05Number(getInteger(row,"gear05_number"));
        m.setGear06Mileage(getInteger(row,"gear06_mileage"));
        m.setGear06Fuel(getInteger(row,"gear06_fuel"));
        m.setGear06Duration(getInteger(row,"gear06_duration"));
        m.setGear06Number(getInteger(row,"gear06_number"));
        m.setGear07Mileage(getInteger(row,"gear07_mileage"));
        m.setGear07Fuel(getInteger(row,"gear07_fuel"));
        m.setGear07Duration(getInteger(row,"gear07_duration"));
        m.setGear07Number(getInteger(row,"gear07_number"));
        m.setGear08Mileage(getInteger(row,"gear08_mileage"));
        m.setGear08Fuel(getInteger(row,"gear08_fuel"));
        m.setGear08Duration(getInteger(row,"gear08_duration"));
        m.setGear08Number(getInteger(row,"gear08_number"));
        m.setGear09Mileage(getInteger(row,"gear09_mileage"));
        m.setGear09Fuel(getInteger(row,"gear09_fuel"));
        m.setGear09Duration(getInteger(row,"gear09_duration"));
        m.setGear09Number(getInteger(row,"gear09_number"));
        m.setGear10Mileage(getInteger(row,"gear10_mileage"));
        m.setGear10Fuel(getInteger(row,"gear10_fuel"));
        m.setGear10Duration(getInteger(row,"gear10_duration"));
        m.setGear10Number(getInteger(row,"gear10_number"));
        m.setGear11Mileage(getInteger(row,"gear11_mileage"));
        m.setGear11Fuel(getInteger(row,"gear11_fuel"));
        m.setGear11Duration(getInteger(row,"gear11_duration"));
        m.setGear11Number(getInteger(row,"gear11_number"));
        m.setGear12Mileage(getInteger(row,"gear12_mileage"));
        m.setGear12Fuel(getInteger(row,"gear12_fuel"));
        m.setGear12Duration(getInteger(row,"gear12_duration"));
        m.setGear12Number(getInteger(row,"gear12_number"));
        m.setGear13Mileage(getInteger(row,"gear13_mileage"));
        m.setGear13Fuel(getInteger(row,"gear13_fuel"));
        m.setGear13Duration(getInteger(row,"gear13_duration"));
        m.setGear13Number(getInteger(row,"gear13_number"));
        m.setGear14Mileage(getInteger(row,"gear14_mileage"));
        m.setGear14Fuel(getInteger(row,"gear14_fuel"));
        m.setGear14Duration(getInteger(row,"gear14_duration"));
        m.setGear14Number(getInteger(row,"gear14_number"));
        m.setGear15Mileage(getInteger(row,"gear15_mileage"));
        m.setGear15Fuel(getInteger(row,"gear15_fuel"));
        m.setGear15Duration(getInteger(row,"gear15_duration"));
        m.setGear15Number(getInteger(row,"gear15_number"));
        m.setGear16Mileage(getInteger(row,"gear16_mileage"));
        m.setGear16Fuel(getInteger(row,"gear16_fuel"));
        m.setGear16Duration(getInteger(row,"gear16_duration"));
        m.setGear16Number(getInteger(row,"gear16_number"));
        m.setGearOtherMileage(getInteger(row,"gear_other_mileage"));
        m.setGearOtherFuel(getInteger(row,"gear_other_fuel"));
        m.setGearOtherDuration(getInteger(row,"gear_other_duration"));
        m.setGearOtherNumber(getInteger(row,"gear_other_number"));
        m.setRpmRange500Mileage(getInteger(row,"rpm_range500_mileage"));
        m.setRpmRange500Fuel(getInteger(row,"rpm_range500_fuel"));
        m.setRpmRange500Duration(getInteger(row,"rpm_range500_duration"));
        m.setRpmRange600Mileage(getInteger(row,"rpm_range600_mileage"));
        m.setRpmRange600Fuel(getInteger(row,"rpm_range600_fuel"));
        m.setRpmRange600Duration(getInteger(row,"rpm_range600_duration"));
        m.setRpmRange700Mileage(getInteger(row,"rpm_range700_mileage"));
        m.setRpmRange700Fuel(getInteger(row,"rpm_range700_fuel"));
        m.setRpmRange700Duration(getInteger(row,"rpm_range700_duration"));
        m.setRpmRange800Mileage(getInteger(row,"rpm_range800_mileage"));
        m.setRpmRange800Fuel(getInteger(row,"rpm_range800_fuel"));
        m.setRpmRange800Duration(getInteger(row,"rpm_range800_duration"));
        m.setRpmRange900Mileage(getInteger(row,"rpm_range900_mileage"));
        m.setRpmRange900Fuel(getInteger(row,"rpm_range900_fuel"));
        m.setRpmRange900Duration(getInteger(row,"rpm_range900_duration"));
        m.setRpmRange1000Mileage(getInteger(row,"rpm_range1000_mileage"));
        m.setRpmRange1000Fuel(getInteger(row,"rpm_range1000_fuel"));
        m.setRpmRange1000Duration(getInteger(row,"rpm_range1000_duration"));
        m.setRpmRange1100Mileage(getInteger(row,"rpm_range1100_mileage"));
        m.setRpmRange1100Fuel(getInteger(row,"rpm_range1100_fuel"));
        m.setRpmRange1100Duration(getInteger(row,"rpm_range1100_duration"));
        m.setRpmRange1200Mileage(getInteger(row,"rpm_range1200_mileage"));
        m.setRpmRange1200Fuel(getInteger(row,"rpm_range1200_fuel"));
        m.setRpmRange1200Duration(getInteger(row,"rpm_range1200_duration"));
        m.setRpmRange1300Mileage(getInteger(row,"rpm_range1300_mileage"));
        m.setRpmRange1300Fuel(getInteger(row,"rpm_range1300_fuel"));
        m.setRpmRange1300Duration(getInteger(row,"rpm_range1300_duration"));
        m.setRpmRange1400Mileage(getInteger(row,"rpm_range1400_mileage"));
        m.setRpmRange1400Fuel(getInteger(row,"rpm_range1400_fuel"));
        m.setRpmRange1400Duration(getInteger(row,"rpm_range1400_duration"));
        m.setRpmRange1500Mileage(getInteger(row,"rpm_range1500_mileage"));
        m.setRpmRange1500Fuel(getInteger(row,"rpm_range1500_fuel"));
        m.setRpmRange1500Duration(getInteger(row,"rpm_range1500_duration"));
        m.setRpmRange1600Mileage(getInteger(row,"rpm_range1600_mileage"));
        m.setRpmRange1600Fuel(getInteger(row,"rpm_range1600_fuel"));
        m.setRpmRange1600Duration(getInteger(row,"rpm_range1600_duration"));
        m.setRpmRange1700Mileage(getInteger(row,"rpm_range1700_mileage"));
        m.setRpmRange1700Fuel(getInteger(row,"rpm_range1700_fuel"));
        m.setRpmRange1700Duration(getInteger(row,"rpm_range1700_duration"));
        m.setRpmRange1800Mileage(getInteger(row,"rpm_range1800_mileage"));
        m.setRpmRange1800Fuel(getInteger(row,"rpm_range1800_fuel"));
        m.setRpmRange1800Duration(getInteger(row,"rpm_range1800_duration"));
        m.setRpmRange1900Mileage(getInteger(row,"rpm_range1900_mileage"));
        m.setRpmRange1900Fuel(getInteger(row,"rpm_range1900_fuel"));
        m.setRpmRange1900Duration(getInteger(row,"rpm_range1900_duration"));
        m.setRpmRange2000Mileage(getInteger(row,"rpm_range2000_mileage"));
        m.setRpmRange2000Fuel(getInteger(row,"rpm_range2000_fuel"));
        m.setRpmRange2000Duration(getInteger(row,"rpm_range2000_duration"));
        m.setRpmRange2100Mileage(getInteger(row,"rpm_range2100_mileage"));
        m.setRpmRange2100Fuel(getInteger(row,"rpm_range2100_fuel"));
        m.setRpmRange2100Duration(getInteger(row,"rpm_range2100_duration"));
        m.setRpmRange2200Mileage(getInteger(row,"rpm_range2200_mileage"));
        m.setRpmRange2200Fuel(getInteger(row,"rpm_range2200_fuel"));
        m.setRpmRange2200Duration(getInteger(row,"rpm_range2200_duration"));
        m.setRpmRange2300Mileage(getInteger(row,"rpm_range2300_mileage"));
        m.setRpmRange2300Fuel(getInteger(row,"rpm_range2300_fuel"));
        m.setRpmRange2300Duration(getInteger(row,"rpm_range2300_duration"));
        m.setRpmRange2400Mileage(getInteger(row,"rpm_range2400_mileage"));
        m.setRpmRange2400Fuel(getInteger(row,"rpm_range2400_fuel"));
        m.setRpmRange2400Duration(getInteger(row,"rpm_range2400_duration"));
        m.setRpmRange2500Mileage(getInteger(row,"rpm_range2500_mileage"));
        m.setRpmRange2500Fuel(getInteger(row,"rpm_range2500_fuel"));
        m.setRpmRange2500Duration(getInteger(row,"rpm_range2500_duration"));
        m.setRpmRange2600Mileage(getInteger(row,"rpm_range2600_mileage"));
        m.setRpmRange2600Fuel(getInteger(row,"rpm_range2600_fuel"));
        m.setRpmRange2600Duration(getInteger(row,"rpm_range2600_duration"));
        m.setRpmRange2700Mileage(getInteger(row,"rpm_range2700_mileage"));
        m.setRpmRange2700Fuel(getInteger(row,"rpm_range2700_fuel"));
        m.setRpmRange2700Duration(getInteger(row,"rpm_range2700_duration"));
        m.setRpmRange2800Mileage(getInteger(row,"rpm_range2800_mileage"));
        m.setRpmRange2800Fuel(getInteger(row,"rpm_range2800_fuel"));
        m.setRpmRange2800Duration(getInteger(row,"rpm_range2800_duration"));
        m.setRpmRange2900Mileage(getInteger(row,"rpm_range2900_mileage"));
        m.setRpmRange2900Fuel(getInteger(row,"rpm_range2900_fuel"));
        m.setRpmRange2900Duration(getInteger(row,"rpm_range2900_duration"));
        m.setRpmRange3000Mileage(getInteger(row,"rpm_range3000_mileage"));
        m.setRpmRange3000Fuel(getInteger(row,"rpm_range3000_fuel"));
        m.setRpmRange3000Duration(getInteger(row,"rpm_range3000_duration"));
        m.setRpmRangeOver3000Mileage(getInteger(row,"rpm_range_over3000_mileage"));
        m.setRpmRangeOver3000Duration(getInteger(row,"rpm_range_over3000_duration"));
        m.setRpmRangeOver3000Fuel(getInteger(row,"rpm_range_over3000_fuel"));
        //ignore set setAltitudeRanges
        //ignore set setClockRanges
        m.setWorkWaterTemp50Duration(getInteger(row,"work_water_temp50_duration"));
        m.setWorkWaterTemp70Duration(getInteger(row,"work_water_temp70_duration"));
        m.setWorkWaterTemp80Duration(getInteger(row,"work_water_temp80_duration"));
        m.setWorkWaterTemp85Duration(getInteger(row,"work_water_temp85_duration"));
        m.setWorkWaterTemp90Duration(getInteger(row,"work_water_temp90_duration"));
        m.setWorkWaterTemp95Duration(getInteger(row,"work_water_temp95_duration"));
        m.setWorkWaterTemp100Duration(getInteger(row,"work_water_temp100_duration"));
        m.setWorkWaterTemp105Duration(getInteger(row,"work_water_temp105_duration"));
        m.setWorkWaterTemp110Duration(getInteger(row,"work_water_temp110_duration"));
        m.setWorkWaterTemp115Duration(getInteger(row,"work_water_temp115_duration"));
        m.setWorkWaterTemp120Duration(getInteger(row,"work_water_temp120_duration"));
        m.setWorkWaterTemp125Duration(getInteger(row,"work_water_temp125_duration"));
        m.setWorkWaterTemp130Duration(getInteger(row,"work_water_temp130_duration"));
        m.setWorkWaterTemp135Duration(getInteger(row,"work_water_temp135_duration"));
        m.setWorkWaterTemp140Duration(getInteger(row,"work_water_temp140_duration"));
        m.setWorkWaterTemp145Duration(getInteger(row,"work_water_temp145_duration"));
        m.setWorkWaterTemp150Duration(getInteger(row,"work_water_temp150_duration"));
        m.setWorkWaterTempOver150Duration(getInteger(row,"work_water_temp_over150_duration"));
        m.setIdleWaterTemp50Duration(getInteger(row,"idle_water_temp50_duration"));
        m.setIdleWaterTemp70Duration(getInteger(row,"idle_water_temp70_duration"));
        m.setIdleWaterTemp80Duration(getInteger(row,"idle_water_temp80_duration"));
        m.setIdleWaterTemp85Duration(getInteger(row,"idle_water_temp85_duration"));
        m.setIdleWaterTemp90Duration(getInteger(row,"idle_water_temp90_duration"));
        m.setIdleWaterTemp95Duration(getInteger(row,"idle_water_temp95_duration"));
        m.setIdleWaterTemp100Duration(getInteger(row,"idle_water_temp100_duration"));
        m.setIdleWaterTemp105Duration(getInteger(row,"idle_water_temp105_duration"));
        m.setIdleWaterTemp110Duration(getInteger(row,"idle_water_temp110_duration"));
        m.setIdleWaterTemp115Duration(getInteger(row,"idle_water_temp115_duration"));
        m.setIdleWaterTemp120Duration(getInteger(row,"idle_water_temp120_duration"));
        m.setIdleWaterTemp125Duration(getInteger(row,"idle_water_temp125_duration"));
        m.setIdleWaterTemp130Duration(getInteger(row,"idle_water_temp130_duration"));
        m.setIdleWaterTemp135Duration(getInteger(row,"idle_water_temp135_duration"));
        m.setIdleWaterTemp140Duration(getInteger(row,"idle_water_temp140_duration"));
        m.setIdleWaterTemp145Duration(getInteger(row,"idle_water_temp145_duration"));
        m.setIdleWaterTemp150Duration(getInteger(row,"idle_water_temp150_duration"));
        m.setIdleWaterTempOver150Duration(getInteger(row,"idle_water_temp_over150_duration"));
        m.setMaxWorkWaterTemp(getInteger(row,"max_work_water_temp"));
        m.setMinWorkWaterTemp(getInteger(row,"min_work_water_temp"));
        m.setWorkWaterTempSum(getLong(row,"work_water_temp_sum"));
        m.setWorkWaterTempCount(getInteger(row,"work_water_temp_count"));
        m.setMaxIdleWaterTemp(getInteger(row,"max_idle_water_temp"));
        m.setMinIdleWaterTemp(getInteger(row,"min_idle_water_temp"));
        m.setIdleWaterTempSum(getLong(row,"idle_water_temp_sum"));
        m.setIdleWaterTempCount(getInteger(row,"idle_water_temp_count"));
        m.setGasOpenPercent0Duration(getInteger(row,"gas_open_percent0_duration"));
        m.setGasOpenPercent10Duration(getInteger(row,"gas_open_percent10_duration"));
        m.setGasOpenPercent20Duration(getInteger(row,"gas_open_percent20_duration"));
        m.setGasOpenPercent30Duration(getInteger(row,"gas_open_percent30_duration"));
        m.setGasOpenPercent40Duration(getInteger(row,"gas_open_percent40_duration"));
        m.setGasOpenPercent50Duration(getInteger(row,"gas_open_percent50_duration"));
        m.setGasOpenPercent60Duration(getInteger(row,"gas_open_percent60_duration"));
        m.setGasOpenPercent70Duration(getInteger(row,"gas_open_percent70_duration"));
        m.setGasOpenPercent80Duration(getInteger(row,"gas_open_percent80_duration"));
        m.setGasOpenPercent90Duration(getInteger(row,"gas_open_percent90_duration"));
        m.setGasOpenPercent99Duration(getInteger(row,"gas_open_percent99_duration"));
        m.setGasOpenPercent100Duration(getInteger(row,"gas_open_percent100_duration"));
        m.setTorque0Duration(getInteger(row,"torque0_duration"));
        m.setTorque10Duration(getInteger(row,"torque10_duration"));
        m.setTorque20Duration(getInteger(row,"torque20_duration"));
        m.setTorque30Duration(getInteger(row,"torque30_duration"));
        m.setTorque40Duration(getInteger(row,"torque40_duration"));
        m.setTorque50Duration(getInteger(row,"torque50_duration"));
        m.setTorque60Duration(getInteger(row,"torque60_duration"));
        m.setTorque70Duration(getInteger(row,"torque70_duration"));
        m.setTorque80Duration(getInteger(row,"torque80_duration"));
        m.setTorque90Duration(getInteger(row,"torque90_duration"));
        m.setTorque99Duration(getInteger(row,"torque99_duration"));
        m.setTorque100Duration(getInteger(row,"torque100_duration"));
        m.setMaxTorque(getInteger(row,"max_torque"));
        m.setMinTorque(getInteger(row,"min_torque"));
        m.setTorqueSum(getLong(row,"torque_sum"));
        m.setTorqueCount(getInteger(row,"torque_count"));
        m.setNoIdleRpmSum(getLong(row,"no_idle_rpm_sum"));
        m.setNoIdleRpmCount(getInteger(row,"no_idle_rpm_count"));
        m.setRpmSum(getLong(row,"rpm_sum"));
        m.setRpmCount(getInteger(row,"rpm_count"));
        m.setMaxRpm(getInteger(row,"max_rpm"));
        m.setMinRpm(getInteger(row,"min_rpm"));
        m.setIat50Duration(getInteger(row,"iat50_duration"));
        m.setIat70Duration(getInteger(row,"iat70_duration"));
        m.setIat80Duration(getInteger(row,"iat80_duration"));
        m.setIat85Duration(getInteger(row,"iat85_duration"));
        m.setIat90Duration(getInteger(row,"iat90_duration"));
        m.setIat95Duration(getInteger(row,"iat95_duration"));
        m.setIat100Duration(getInteger(row,"iat100_duration"));
        m.setIat105Duration(getInteger(row,"iat105_duration"));
        m.setIat110Duration(getInteger(row,"iat110_duration"));
        m.setIat115Duration(getInteger(row,"iat115_duration"));
        m.setIat120Duration(getInteger(row,"iat120_duration"));
        m.setIat125Duration(getInteger(row,"iat125_duration"));
        m.setIat130Duration(getInteger(row,"iat130_duration"));
        m.setIat135Duration(getInteger(row,"iat135_duration"));
        m.setIat140Duration(getInteger(row,"iat140_duration"));
        m.setIat145Duration(getInteger(row,"iat145_duration"));
        m.setIat150Duration(getInteger(row,"iat150_duration"));
        m.setIatOver150Duration(getInteger(row,"iat_over150_duration"));
        m.setIatSum(getLong(row,"iat_sum"));
        m.setIatCount(getInteger(row,"iat_count"));
        m.setMaxIat(getInteger(row,"max_iat"));
        m.setMinIat(getInteger(row,"min_iat"));
        m.setIp50Duration(getInteger(row,"ip50_duration"));
        m.setIp60Duration(getInteger(row,"ip60_duration"));
        m.setIp70Duration(getInteger(row,"ip70_duration"));
        m.setIp80Duration(getInteger(row,"ip80_duration"));
        m.setIp90Duration(getInteger(row,"ip90_duration"));
        m.setIp100Duration(getInteger(row,"ip100_duration"));
        m.setIp110Duration(getInteger(row,"ip110_duration"));
        m.setIp120Duration(getInteger(row,"ip120_duration"));
        m.setIp130Duration(getInteger(row,"ip130_duration"));
        m.setIp140Duration(getInteger(row,"ip140_duration"));
        m.setIp150Duration(getInteger(row,"ip150_duration"));
        m.setIpOver150Duration(getInteger(row,"ip_over150_duration"));
        m.setIpSum(getLong(row,"ip_sum"));
        m.setIpCount(getInteger(row,"ip_count"));
        m.setMaxIp(getInteger(row,"max_ip"));
        m.setMinIp(getInteger(row,"min_ip"));
        m.setCrossCities(getString(row,"cross_cities"));
        m.setSo90Number(getInteger(row,"so90_number"));
        m.setSo90Duration(getInteger(row,"so90_duration"));
        m.setSo90Mileage(getInteger(row,"so90_mileage"));
        m.setSo120Number(getInteger(row,"so120_number"));
        m.setSo120Duration(getInteger(row,"so120_duration"));
        m.setSo120Mileage(getInteger(row,"so120_mileage"));
        m.setSrNumber(getInteger(row,"sr_number"));
        m.setSrDuration(getInteger(row,"sr_duration"));
        m.setSrMileage(getInteger(row,"sr_mileage"));
        m.setSrFuel(getInteger(row,"sr_fuel"));
        m.setLrogNumber(getInteger(row,"lrog_number"));
        m.setLrogDuration(getInteger(row,"lrog_duration"));
        m.setLrogMileage(getInteger(row,"lrog_mileage"));
        m.setLrogFuel(getInteger(row,"lrog_fuel"));
        m.setHsbNumber(getInteger(row,"hsb_number"));
        m.setHsbDuration(getInteger(row,"hsb_duration"));
        m.setHsbMileage(getInteger(row,"hsb_mileage"));
        m.setCsbNumber(getInteger(row,"csb_number"));
        m.setCsbDuration(getInteger(row,"csb_duration"));
        m.setCsbMileage(getInteger(row,"csb_mileage"));
        m.setClutchNumber(getInteger(row,"clutch_number"));
        m.setClutchDuration(getInteger(row,"clutch_duration"));
        m.setClutchMileage(getInteger(row,"clutch_mileage"));
        m.setSharpTurningNumber(getInteger(row,"sharp_turning_number"));
        m.setSharpTurningMil(getInteger(row,"sharp_turning_mil"));
        m.setSo90Fuel(getInteger(row,"so90_fuel"));
        m.setSo120Fuel(getInteger(row,"so120_fuel"));
        m.setFatigueDrivingDuration(getInteger(row,"fatigue_driving_duration"));
        m.setPreciseFlag(getInteger(row,"precise_flag"));
        m.setWloadType(getInteger(row,"wload_type"));
        //ignore set setCityDetails
        /*--end_deserialization*/
        m.setAltitudeRanges(getRangeData(row, "altitude_ranges"));
        m.setClockRanges(getRangeData(row, "clock_ranges"));
        m.setDay(getString(row,"day"));
        String ccDetailStr=getString(row,"cross_cities_detail");
        if(StringUtils.isNotEmpty(ccDetailStr)){
            m.setCrossCitiesDetail(GsonUtils.gsonToList(ccDetailStr, InterCrossCity.class));
        }

        //东风新增，急加速
        m.setSharpUpSpeedMileage_DF(getInteger(row,"sharp_up_speed1_mileage"));
        m.setSharpUpSpeedFuel_DF(getInteger(row,"sharp_up_speed1_fuel"));
        m.setSharpUpSpeedDuration_DF(getInteger(row,"sharp_up_speed1_duration"));
        m.setSharpUpSpeedNumber_DF(getInteger(row,"sharp_up_speed1_number"));
        //东风新增，急减速
        m.setSharpDownSpeedMileage_DF(getInteger(row,"sharp_down_speed1_mileage"));
        m.setSharpDownSpeedFuel_DF(getInteger(row,"sharp_down_speed1_fuel"));
        m.setSharpDownSpeedDuration_DF(getInteger(row,"sharp_down_speed1_duration"));
        m.setSharpDownSpeedNumber_DF(getInteger(row,"sharp_down_speed1_number"));
        //东风新增，急转弯
        m.setSharpTurningNumber_DF(getInteger(row,"sharp_turning1_number"));
        //东风新增，超长怠速
        m.setLongIdleFuel_DF(getInteger(row,"long_idle_fuel"));
        m.setLongIdleDuration_DF(getInteger(row,"long_idle_duration"));
        m.setLongIdleNumber_DF(getInteger(row,"long_idle_number"));
        //东风新增，冷车运行
        m.setColdRunningMileage_DF(getInteger(row,"cold_running_mileage"));
        m.setColdRunningFuel_DF(getInteger(row,"cold_running_fuel"));
        m.setColdRunningDuration_DF(getInteger(row,"cold_running_duration"));
        m.setColdRunningNumber_DF(getInteger(row,"cold_running_number"));
        //东风新增，夜晚开车
        m.setNightRunningMileage_DF(getInteger(row,"night_running_mileage"));
        m.setNightRunningFuel_DF(getInteger(row,"night_running_fuel"));
        m.setNightRunningDuration_DF(getInteger(row,"night_running_duration"));
        m.setNightRunningNumber_DF(getInteger(row,"night_running_number"));
        //东风新增，引擎高转速
        m.setHighRotationMileage_DF(getInteger(row,"high_rotation_mileage"));
        m.setHighRotationFuel_DF(getInteger(row,"high_rotation_fuel"));
        m.setHighRotationDuration_DF(getInteger(row,"high_rotation_duration"));
        m.setHighRotationNumber_DF(getInteger(row,"high_rotation_number"));
        //东风新增，大油门
        m.setLargeGasMileage_DF(getInteger(row,"large_gas_mileage"));
        m.setLargeGasFuel_DF(getInteger(row,"large_gas_fuel"));
        m.setLargeGasDuration_DF(getInteger(row,"large_gas_duration"));
        m.setLargeGasNumber_DF(getInteger(row,"large_gas_number"));
        //东风新增，全油门
        m.setFullGasMileage_DF(getInteger(row,"full_gas_mileage"));
        m.setFullGasFuel_DF(getInteger(row,"full_gas_fuel"));
        m.setFullGasDuration_DF(getInteger(row,"full_gas_duration"));
        m.setFullGasNumber_DF(getInteger(row,"full_gas_number"));
        //东风新增，高速行驶
        m.setFastSpeedMileage_DF(getInteger(row,"fast_speed_mileage"));
        m.setFastSpeedFuel_DF(getInteger(row,"fast_speed_fuel"));
        m.setFastSpeedDuration_DF(getInteger(row,"fast_speed_duration"));
        m.setFastSpeedNumber_DF(getInteger(row,"fast_speed_number"));
        //东风新增，空档滑行
        m.setNeutralGearCoastMileage_DF(getInteger(row,"neutral_gear_coast1_mileage"));
        m.setNeutralGearCoastFuel_DF(getInteger(row,"neutral_gear_coast1_fuel"));
        m.setNeutralGearCoastDuration_DF(getInteger(row,"neutral_gear_coast1_duration"));
        m.setNeutralGearCoastNumber_DF(getInteger(row,"neutral_gear_coast1_number"));
        //东风新增，熄火滑行
        m.setFlameoutCoastMileage_DF(getInteger(row,"flameout_coast_mileage"));
        m.setFlameoutCoastFuel_DF(getInteger(row,"flameout_coast_fuel"));
        m.setFlameoutCoastDuration_DF(getInteger(row,"flameout_coast_duration"));
        m.setFlameoutCoastNumber_DF(getInteger(row,"flameout_coast_number"));
        //东风新增，载重
        m.setAmtLoad_DF(getInteger(row,"amt_load"));
        m.setVecuLoad_DF(getInteger(row,"vecu_load"));
        m.setLoadType_DF(getInteger(row,"load_type"));
        //行程打分
        m.setTotalScore(getInteger(row,"totalScore"));
        m.setTotalScore(getInteger(row,"safeScore"));
        m.setTotalScore(getInteger(row,"ecoScore"));
        m.setRouteStartOilPercentage(getInteger(row,"route_start_oilPercentage"));
        m.setRouteEndOilPercentage(getInteger(row,"route_end_oilPercentage"));
        return m;
    }

    @Override
    public Document toDocument(OuterStatisticData m) {
        Document doc = new Document();
        /*--start_schema*/
        if(m.getUid()!=null){ doc.put("uid",m.getUid());}
        if(m.getTid()!=null){ doc.put("tid",m.getTid());}
        if(m.getTripId()!=null){ doc.put("tripId",m.getTripId());}
        if(m.getRouteStartTime()!=null){ doc.put("routeSTime",m.getRouteStartTime());}
        if(m.getRouteStartLc()!=null){ doc.put("routeSLc",m.getRouteStartLc());}
        if(m.getRouteStartLatitude()!=null){ doc.put("routeSLatitude",m.getRouteStartLatitude());}
        if(m.getRouteStartLongitude()!=null){ doc.put("routeSLongitude",m.getRouteStartLongitude());}
        if(m.getRouteStartHeight()!=null){ doc.put("routeSHeight",m.getRouteStartHeight());}
        if(m.getRouteStartDirection()!=null){ doc.put("routeSDir",m.getRouteStartDirection());}
        if(m.getRouteStartMileage()!=null){ doc.put("routeSMil",m.getRouteStartMileage());}
        if(m.getRouteStartFuel()!=null){ doc.put("routeSFue",m.getRouteStartFuel());}
        if(m.getRouteEndTime()!=null){ doc.put("routeETime",m.getRouteEndTime());}
        if(m.getRouteEndLc()!=null){ doc.put("routeELc",m.getRouteEndLc());}
        if(m.getRouteEndLatitude()!=null){ doc.put("routeELatitude",m.getRouteEndLatitude());}
        if(m.getRouteEndLongitude()!=null){ doc.put("routeELongitude",m.getRouteEndLongitude());}
        if(m.getRouteEndHeight()!=null){ doc.put("routeEHeight",m.getRouteEndHeight());}
        if(m.getRouteEndDirection()!=null){ doc.put("routeEDir",m.getRouteEndDirection());}
        if(m.getRouteEndMileage()!=null){ doc.put("routeEMil",m.getRouteEndMileage());}
        if(m.getRouteEndFuel()!=null){ doc.put("routeEFue",m.getRouteEndFuel());}
        if(m.getRouteIntegralMileage()!=null){ doc.put("routeIMil",m.getRouteIntegralMileage());}
        if(m.getRouteIntegralFuel()!=null){ doc.put("routeIFue",m.getRouteIntegralFuel());}
        if(m.getTripPower()!=null){ doc.put("tripPower",m.getTripPower());}
        if(m.getStype()!=null){ doc.put("stype",m.getStype());}
        if(m.getTripMileage()!=null){ doc.put("tripMil",m.getTripMileage());}
        if(m.getTripFuel()!=null){ doc.put("tripFue",m.getTripFuel());}
        if(m.getTripDuration()!=null){ doc.put("tripDur",m.getTripDuration());}
        if(m.getRouteStopFlag()!=null){ doc.put("routeSFlag",m.getRouteStopFlag());}
        if(m.getCrossDayFlag()!=null){ doc.put("crossDFlag",m.getCrossDayFlag());}
        if(m.getForceEndFlag()!=null){ doc.put("forceEFlag",m.getForceEndFlag());}
        if(m.getMaxSpeed()!=null){ doc.put("maxSpeed",m.getMaxSpeed());}
        if(m.getMinSpeed()!=null){ doc.put("minSpeed",m.getMinSpeed());}
        if(m.getMaxUsefulSpeed()!=null){ doc.put("maxUSpeed",m.getMaxUsefulSpeed());}
        if(m.getMinUsefulSpeed()!=null){ doc.put("minUSpeed",m.getMinUsefulSpeed());}
        if(m.getInGearCoastMileage()!=null){ doc.put("inGcMil",m.getInGearCoastMileage());}
        if(m.getInGearCoastDuration()!=null){ doc.put("inGcDur",m.getInGearCoastDuration());}
        if(m.getInGearCoastNumber()!=null){ doc.put("inGcNum",m.getInGearCoastNumber());}
        if(m.getBrakeNumber()!=null){ doc.put("brakeNum",m.getBrakeNumber());}
        if(m.getBrakeMileage()!=null){ doc.put("brakeMil",m.getBrakeMileage());}
        if(m.getBrakeDuration()!=null){ doc.put("brakeDur",m.getBrakeDuration());}
        if(m.getVehicleEstimatedLoad()!=null){ doc.put("vehicleELoad",m.getVehicleEstimatedLoad());}
        if(m.getNeutralGearCoastDuration()!=null){ doc.put("neutralGcDur",m.getNeutralGearCoastDuration());}
        if(m.getNeutralGearCoastFuel()!=null){ doc.put("neutralGcFue",m.getNeutralGearCoastFuel());}
        if(m.getNeutralGearCoastMileage()!=null){ doc.put("neutralGcMil",m.getNeutralGearCoastMileage());}
        if(m.getNeutralGearCoastNumber()!=null){ doc.put("neutralGcNum",m.getNeutralGearCoastNumber());}
        if(m.getIdleFuel()!=null){ doc.put("idleFue",m.getIdleFuel());}
        if(m.getIdleDuration()!=null){ doc.put("idleDur",m.getIdleDuration());}
        if(m.getIdleNumber()!=null){ doc.put("idleNum",m.getIdleNumber());}
        if(m.getParkingPowerOnDuration()!=null){ doc.put("parkingPoDur",m.getParkingPowerOnDuration());}
        if(m.getCityDrivingMileage()!=null){ doc.put("cityDMil",m.getCityDrivingMileage());}
        if(m.getCityDrivingDuration()!=null){ doc.put("cityDDur",m.getCityDrivingDuration());}
        if(m.getCityDrivingFuel()!=null){ doc.put("cityDFue",m.getCityDrivingFuel());}
        if(m.getRuralDrivingMileage()!=null){ doc.put("ruralDMil",m.getRuralDrivingMileage());}
        if(m.getRuralDrivingDuration()!=null){ doc.put("ruralDDur",m.getRuralDrivingDuration());}
        if(m.getRuralDrivingFuel()!=null){ doc.put("ruralDFue",m.getRuralDrivingFuel());}
        if(m.getEcoDrivingMileage()!=null){ doc.put("ecoDMil",m.getEcoDrivingMileage());}
        if(m.getEcoDrivingDuration()!=null){ doc.put("ecoDDur",m.getEcoDrivingDuration());}
        if(m.getEcoDrivingFuel()!=null){ doc.put("ecoDFue",m.getEcoDrivingFuel());}
        if(m.getUpSlopeDrivingMileage()!=null){ doc.put("upSdMil",m.getUpSlopeDrivingMileage());}
        if(m.getUpSlopeDrivingDuration()!=null){ doc.put("upSdDur",m.getUpSlopeDrivingDuration());}
        if(m.getUpSlopeDrivingFuel()!=null){ doc.put("upSdFue",m.getUpSlopeDrivingFuel());}
        if(m.getDownSlopeDrivingMileage()!=null){ doc.put("downSdMil",m.getDownSlopeDrivingMileage());}
        if(m.getDownSlopeDrivingDuration()!=null){ doc.put("downSdDur",m.getDownSlopeDrivingDuration());}
        if(m.getDownSlopeDrivingFuel()!=null){ doc.put("downSdFue",m.getDownSlopeDrivingFuel());}
        if(m.getLevelRoadDrivingMileage()!=null){ doc.put("levelRdMil",m.getLevelRoadDrivingMileage());}
        if(m.getLevelRoadDrivingDuration()!=null){ doc.put("levelRdDur",m.getLevelRoadDrivingDuration());}
        if(m.getLevelRoadDrivingFuel()!=null){ doc.put("levelRdFue",m.getLevelRoadDrivingFuel());}
        if(m.getCruiseMileage()!=null){ doc.put("cruiseMil",m.getCruiseMileage());}
        if(m.getCruiseDuration()!=null){ doc.put("cruiseDur",m.getCruiseDuration());}
        if(m.getCruiseFuel()!=null){ doc.put("cruiseFue",m.getCruiseFuel());}
        if(m.getShiftGearsNumber()!=null){ doc.put("shiftGNum",m.getShiftGearsNumber());}
        if(m.getSharpDownSpeedDuration()!=null){ doc.put("sharpDsDur",m.getSharpDownSpeedDuration());}
        if(m.getSharpDownSpeedMileage()!=null){ doc.put("sharpDsMil",m.getSharpDownSpeedMileage());}
        if(m.getSharpDownSpeedNumber()!=null){ doc.put("sharpDsNum",m.getSharpDownSpeedNumber());}
        if(m.getSharpUpSpeedDuration()!=null){ doc.put("sharpUsDur",m.getSharpUpSpeedDuration());}
        if(m.getSharpUpSpeedMileage()!=null){ doc.put("sharpUsMil",m.getSharpUpSpeedMileage());}
        if(m.getSharpUpSpeedNumber()!=null){ doc.put("sharpUsNum",m.getSharpUpSpeedNumber());}
        if(m.getSharpUpSpeedFuel()!=null){ doc.put("sharpUsFue",m.getSharpUpSpeedFuel());}
        if(m.getSharpStepOnGasMileage()!=null){ doc.put("sharpSogMil",m.getSharpStepOnGasMileage());}
        if(m.getSharpStepOnGasDuration()!=null){ doc.put("sharpSogDur",m.getSharpStepOnGasDuration());}
        if(m.getSharpStepOnGasFuel()!=null){ doc.put("sharpSogFue",m.getSharpStepOnGasFuel());}
        if(m.getSharpStepOnGasNumber()!=null){ doc.put("sharpSogNum",m.getSharpStepOnGasNumber());}
        if(m.getVehicleParkNumber()!=null){ doc.put("vehiclePNum",m.getVehicleParkNumber());}
        if(m.getVehicleStartNumber()!=null){ doc.put("vehicleSNum",m.getVehicleStartNumber());}
        if(m.getVehicleStartMileage()!=null){ doc.put("vehicleSMil",m.getVehicleStartMileage());}
        if(m.getVehicleStartDuration()!=null){ doc.put("vehicleSDur",m.getVehicleStartDuration());}
        if(m.getVehicleStartFuel()!=null){ doc.put("vehicleSFue",m.getVehicleStartFuel());}
        if(m.getVehicleColdStartNumber()!=null){ doc.put("vehicleCsNum",m.getVehicleColdStartNumber());}
        if(m.getVehicleColdStartMileage()!=null){ doc.put("vehicleCsMil",m.getVehicleColdStartMileage());}
        if(m.getVehicleColdStartDuration()!=null){ doc.put("vehicleCsDur",m.getVehicleColdStartDuration());}
        if(m.getVehicleColdStartFuel()!=null){ doc.put("vehicleCsFue",m.getVehicleColdStartFuel());}
        if(m.getChargeFuelPercent()!=null){ doc.put("chargeFPercent",m.getChargeFuelPercent());}
        if(m.getChargeFuel()!=null){ doc.put("chargeFue",m.getChargeFuel());}
        if(m.getLeakFuelPercent()!=null){ doc.put("leakFPercent",m.getLeakFuelPercent());}
        if(m.getLeakFuel()!=null){ doc.put("leakFue",m.getLeakFuel());}
        if(m.getGasStabilityNumber()!=null){ doc.put("gasSNum",m.getGasStabilityNumber());}
        if(m.getGasStabilityDuration()!=null){ doc.put("gasSDur",m.getGasStabilityDuration());}
        if(m.getGasOpenPercentSum()!=null){ doc.put("gasOpSum",m.getGasOpenPercentSum());}
        if(m.getGasOpenPercentCount()!=null){ doc.put("gasOpCount",m.getGasOpenPercentCount());}
        if(m.getSpeedRange01Mileage()!=null){ doc.put("speedR01Mil",m.getSpeedRange01Mileage());}
        if(m.getSpeedRange01Duration()!=null){ doc.put("speedR01Dur",m.getSpeedRange01Duration());}
        if(m.getSpeedRange01Fuel()!=null){ doc.put("speedR01Fue",m.getSpeedRange01Fuel());}
        if(m.getSpeedRange02Mileage()!=null){ doc.put("speedR02Mil",m.getSpeedRange02Mileage());}
        if(m.getSpeedRange02Duration()!=null){ doc.put("speedR02Dur",m.getSpeedRange02Duration());}
        if(m.getSpeedRange02Fuel()!=null){ doc.put("speedR02Fue",m.getSpeedRange02Fuel());}
        if(m.getSpeedRange03Mileage()!=null){ doc.put("speedR03Mil",m.getSpeedRange03Mileage());}
        if(m.getSpeedRange03Duration()!=null){ doc.put("speedR03Dur",m.getSpeedRange03Duration());}
        if(m.getSpeedRange03Fuel()!=null){ doc.put("speedR03Fue",m.getSpeedRange03Fuel());}
        if(m.getSpeedRange04Mileage()!=null){ doc.put("speedR04Mil",m.getSpeedRange04Mileage());}
        if(m.getSpeedRange04Duration()!=null){ doc.put("speedR04Dur",m.getSpeedRange04Duration());}
        if(m.getSpeedRange04Fuel()!=null){ doc.put("speedR04Fue",m.getSpeedRange04Fuel());}
        if(m.getSpeedRange05Mileage()!=null){ doc.put("speedR05Mil",m.getSpeedRange05Mileage());}
        if(m.getSpeedRange05Duration()!=null){ doc.put("speedR05Dur",m.getSpeedRange05Duration());}
        if(m.getSpeedRange05Fuel()!=null){ doc.put("speedR05Fue",m.getSpeedRange05Fuel());}
        if(m.getSpeedRange06Mileage()!=null){ doc.put("speedR06Mil",m.getSpeedRange06Mileage());}
        if(m.getSpeedRange06Duration()!=null){ doc.put("speedR06Dur",m.getSpeedRange06Duration());}
        if(m.getSpeedRange06Fuel()!=null){ doc.put("speedR06Fue",m.getSpeedRange06Fuel());}
        if(m.getSpeedRange07Mileage()!=null){ doc.put("speedR07Mil",m.getSpeedRange07Mileage());}
        if(m.getSpeedRange07Duration()!=null){ doc.put("speedR07Dur",m.getSpeedRange07Duration());}
        if(m.getSpeedRange07Fuel()!=null){ doc.put("speedR07Fue",m.getSpeedRange07Fuel());}
        if(m.getSpeedRange08Mileage()!=null){ doc.put("speedR08Mil",m.getSpeedRange08Mileage());}
        if(m.getSpeedRange08Duration()!=null){ doc.put("speedR08Dur",m.getSpeedRange08Duration());}
        if(m.getSpeedRange08Fuel()!=null){ doc.put("speedR08Fue",m.getSpeedRange08Fuel());}
        if(m.getSpeedRange09Mileage()!=null){ doc.put("speedR09Mil",m.getSpeedRange09Mileage());}
        if(m.getSpeedRange09Duration()!=null){ doc.put("speedR09Dur",m.getSpeedRange09Duration());}
        if(m.getSpeedRange09Fuel()!=null){ doc.put("speedR09Fue",m.getSpeedRange09Fuel());}
        if(m.getSpeedRange10Mileage()!=null){ doc.put("speedR10Mil",m.getSpeedRange10Mileage());}
        if(m.getSpeedRange10Duration()!=null){ doc.put("speedR10Dur",m.getSpeedRange10Duration());}
        if(m.getSpeedRange10Fuel()!=null){ doc.put("speedR10Fue",m.getSpeedRange10Fuel());}
        if(m.getSpeedRange11Mileage()!=null){ doc.put("speedR11Mil",m.getSpeedRange11Mileage());}
        if(m.getSpeedRange11Duration()!=null){ doc.put("speedR11Dur",m.getSpeedRange11Duration());}
        if(m.getSpeedRange11Fuel()!=null){ doc.put("speedR11Fue",m.getSpeedRange11Fuel());}
        if(m.getSpeedRange12Mileage()!=null){ doc.put("speedR12Mil",m.getSpeedRange12Mileage());}
        if(m.getSpeedRange12Duration()!=null){ doc.put("speedR12Dur",m.getSpeedRange12Duration());}
        if(m.getSpeedRange12Fuel()!=null){ doc.put("speedR12Fue",m.getSpeedRange12Fuel());}
        if(m.getExceedSpeedRangeMileage()!=null){ doc.put("exceedSrMil",m.getExceedSpeedRangeMileage());}
        if(m.getExceedSpeedRangeDuration()!=null){ doc.put("exceedSrDur",m.getExceedSpeedRangeDuration());}
        if(m.getExceedSpeedRangeFuel()!=null){ doc.put("exceedSrFue",m.getExceedSpeedRangeFuel());}
        if(m.getAssistBrakeMileage()!=null){ doc.put("assistBMil",m.getAssistBrakeMileage());}
        if(m.getAssistBrakeDuration()!=null){ doc.put("assistBDur",m.getAssistBrakeDuration());}
        if(m.getFatigueDrivingNumber()!=null){ doc.put("fatigueDNum",m.getFatigueDrivingNumber());}
        if(m.getParkThrottleDuration()!=null){ doc.put("parkTDur",m.getParkThrottleDuration());}
        if(m.getParkThrottleFuel()!=null){ doc.put("parkTFue",m.getParkThrottleFuel());}
        if(m.getRouteIntegralDuration()!=null){ doc.put("engineWDur",m.getRouteIntegralDuration());}
        if(m.getDrivingHandbrakeNumber()!=null){ doc.put("drivingHNum",m.getDrivingHandbrakeNumber());}
        if(m.getDrivingHandbrakeDuration()!=null){ doc.put("drivingHDur",m.getDrivingHandbrakeDuration());}
        if(m.getDrivingHandbrakeMileage()!=null){ doc.put("drivingHMil",m.getDrivingHandbrakeMileage());}
        if(m.getIdleHandbrakeNumber()!=null){ doc.put("idleHNum",m.getIdleHandbrakeNumber());}
        if(m.getIdleHandbrakeDuration()!=null){ doc.put("idleHDur",m.getIdleHandbrakeDuration());}
        if(m.getGear01Mileage()!=null){ doc.put("gear01Mil",m.getGear01Mileage());}
        if(m.getGear01Fuel()!=null){ doc.put("gear01Fue",m.getGear01Fuel());}
        if(m.getGear01Duration()!=null){ doc.put("gear01Dur",m.getGear01Duration());}
        if(m.getGear01Number()!=null){ doc.put("gear01Num",m.getGear01Number());}
        if(m.getGear02Mileage()!=null){ doc.put("gear02Mil",m.getGear02Mileage());}
        if(m.getGear02Fuel()!=null){ doc.put("gear02Fue",m.getGear02Fuel());}
        if(m.getGear02Duration()!=null){ doc.put("gear02Dur",m.getGear02Duration());}
        if(m.getGear02Number()!=null){ doc.put("gear02Num",m.getGear02Number());}
        if(m.getGear03Mileage()!=null){ doc.put("gear03Mil",m.getGear03Mileage());}
        if(m.getGear03Fuel()!=null){ doc.put("gear03Fue",m.getGear03Fuel());}
        if(m.getGear03Duration()!=null){ doc.put("gear03Dur",m.getGear03Duration());}
        if(m.getGear03Number()!=null){ doc.put("gear03Num",m.getGear03Number());}
        if(m.getGear04Mileage()!=null){ doc.put("gear04Mil",m.getGear04Mileage());}
        if(m.getGear04Fuel()!=null){ doc.put("gear04Fue",m.getGear04Fuel());}
        if(m.getGear04Duration()!=null){ doc.put("gear04Dur",m.getGear04Duration());}
        if(m.getGear04Number()!=null){ doc.put("gear04Num",m.getGear04Number());}
        if(m.getGear05Mileage()!=null){ doc.put("gear05Mil",m.getGear05Mileage());}
        if(m.getGear05Fuel()!=null){ doc.put("gear05Fue",m.getGear05Fuel());}
        if(m.getGear05Duration()!=null){ doc.put("gear05Dur",m.getGear05Duration());}
        if(m.getGear05Number()!=null){ doc.put("gear05Num",m.getGear05Number());}
        if(m.getGear06Mileage()!=null){ doc.put("gear06Mil",m.getGear06Mileage());}
        if(m.getGear06Fuel()!=null){ doc.put("gear06Fue",m.getGear06Fuel());}
        if(m.getGear06Duration()!=null){ doc.put("gear06Dur",m.getGear06Duration());}
        if(m.getGear06Number()!=null){ doc.put("gear06Num",m.getGear06Number());}
        if(m.getGear07Mileage()!=null){ doc.put("gear07Mil",m.getGear07Mileage());}
        if(m.getGear07Fuel()!=null){ doc.put("gear07Fue",m.getGear07Fuel());}
        if(m.getGear07Duration()!=null){ doc.put("gear07Dur",m.getGear07Duration());}
        if(m.getGear07Number()!=null){ doc.put("gear07Num",m.getGear07Number());}
        if(m.getGear08Mileage()!=null){ doc.put("gear08Mil",m.getGear08Mileage());}
        if(m.getGear08Fuel()!=null){ doc.put("gear08Fue",m.getGear08Fuel());}
        if(m.getGear08Duration()!=null){ doc.put("gear08Dur",m.getGear08Duration());}
        if(m.getGear08Number()!=null){ doc.put("gear08Num",m.getGear08Number());}
        if(m.getGear09Mileage()!=null){ doc.put("gear09Mil",m.getGear09Mileage());}
        if(m.getGear09Fuel()!=null){ doc.put("gear09Fue",m.getGear09Fuel());}
        if(m.getGear09Duration()!=null){ doc.put("gear09Dur",m.getGear09Duration());}
        if(m.getGear09Number()!=null){ doc.put("gear09Num",m.getGear09Number());}
        if(m.getGear10Mileage()!=null){ doc.put("gear10Mil",m.getGear10Mileage());}
        if(m.getGear10Fuel()!=null){ doc.put("gear10Fue",m.getGear10Fuel());}
        if(m.getGear10Duration()!=null){ doc.put("gear10Dur",m.getGear10Duration());}
        if(m.getGear10Number()!=null){ doc.put("gear10Num",m.getGear10Number());}
        if(m.getGear11Mileage()!=null){ doc.put("gear11Mil",m.getGear11Mileage());}
        if(m.getGear11Fuel()!=null){ doc.put("gear11Fue",m.getGear11Fuel());}
        if(m.getGear11Duration()!=null){ doc.put("gear11Dur",m.getGear11Duration());}
        if(m.getGear11Number()!=null){ doc.put("gear11Num",m.getGear11Number());}
        if(m.getGear12Mileage()!=null){ doc.put("gear12Mil",m.getGear12Mileage());}
        if(m.getGear12Fuel()!=null){ doc.put("gear12Fue",m.getGear12Fuel());}
        if(m.getGear12Duration()!=null){ doc.put("gear12Dur",m.getGear12Duration());}
        if(m.getGear12Number()!=null){ doc.put("gear12Num",m.getGear12Number());}
        if(m.getGear13Mileage()!=null){ doc.put("gear13Mil",m.getGear13Mileage());}
        if(m.getGear13Fuel()!=null){ doc.put("gear13Fue",m.getGear13Fuel());}
        if(m.getGear13Duration()!=null){ doc.put("gear13Dur",m.getGear13Duration());}
        if(m.getGear13Number()!=null){ doc.put("gear13Num",m.getGear13Number());}
        if(m.getGear14Mileage()!=null){ doc.put("gear14Mil",m.getGear14Mileage());}
        if(m.getGear14Fuel()!=null){ doc.put("gear14Fue",m.getGear14Fuel());}
        if(m.getGear14Duration()!=null){ doc.put("gear14Dur",m.getGear14Duration());}
        if(m.getGear14Number()!=null){ doc.put("gear14Num",m.getGear14Number());}
        if(m.getGear15Mileage()!=null){ doc.put("gear15Mil",m.getGear15Mileage());}
        if(m.getGear15Fuel()!=null){ doc.put("gear15Fue",m.getGear15Fuel());}
        if(m.getGear15Duration()!=null){ doc.put("gear15Dur",m.getGear15Duration());}
        if(m.getGear15Number()!=null){ doc.put("gear15Num",m.getGear15Number());}
        if(m.getGear16Mileage()!=null){ doc.put("gear16Mil",m.getGear16Mileage());}
        if(m.getGear16Fuel()!=null){ doc.put("gear16Fue",m.getGear16Fuel());}
        if(m.getGear16Duration()!=null){ doc.put("gear16Dur",m.getGear16Duration());}
        if(m.getGear16Number()!=null){ doc.put("gear16Num",m.getGear16Number());}
        if(m.getGearOtherMileage()!=null){ doc.put("gearOMil",m.getGearOtherMileage());}
        if(m.getGearOtherFuel()!=null){ doc.put("gearOFue",m.getGearOtherFuel());}
        if(m.getGearOtherDuration()!=null){ doc.put("gearODur",m.getGearOtherDuration());}
        if(m.getGearOtherNumber()!=null){ doc.put("gearONum",m.getGearOtherNumber());}
        if(m.getRpmRange500Mileage()!=null){ doc.put("rpmR500Mil",m.getRpmRange500Mileage());}
        if(m.getRpmRange500Fuel()!=null){ doc.put("rpmR500Fue",m.getRpmRange500Fuel());}
        if(m.getRpmRange500Duration()!=null){ doc.put("rpmR500Dur",m.getRpmRange500Duration());}
        if(m.getRpmRange600Mileage()!=null){ doc.put("rpmR600Mil",m.getRpmRange600Mileage());}
        if(m.getRpmRange600Fuel()!=null){ doc.put("rpmR600Fue",m.getRpmRange600Fuel());}
        if(m.getRpmRange600Duration()!=null){ doc.put("rpmR600Dur",m.getRpmRange600Duration());}
        if(m.getRpmRange700Mileage()!=null){ doc.put("rpmR700Mil",m.getRpmRange700Mileage());}
        if(m.getRpmRange700Fuel()!=null){ doc.put("rpmR700Fue",m.getRpmRange700Fuel());}
        if(m.getRpmRange700Duration()!=null){ doc.put("rpmR700Dur",m.getRpmRange700Duration());}
        if(m.getRpmRange800Mileage()!=null){ doc.put("rpmR800Mil",m.getRpmRange800Mileage());}
        if(m.getRpmRange800Fuel()!=null){ doc.put("rpmR800Fue",m.getRpmRange800Fuel());}
        if(m.getRpmRange800Duration()!=null){ doc.put("rpmR800Dur",m.getRpmRange800Duration());}
        if(m.getRpmRange900Mileage()!=null){ doc.put("rpmR900Mil",m.getRpmRange900Mileage());}
        if(m.getRpmRange900Fuel()!=null){ doc.put("rpmR900Fue",m.getRpmRange900Fuel());}
        if(m.getRpmRange900Duration()!=null){ doc.put("rpmR900Dur",m.getRpmRange900Duration());}
        if(m.getRpmRange1000Mileage()!=null){ doc.put("rpmR1000Mil",m.getRpmRange1000Mileage());}
        if(m.getRpmRange1000Fuel()!=null){ doc.put("rpmR1000Fue",m.getRpmRange1000Fuel());}
        if(m.getRpmRange1000Duration()!=null){ doc.put("rpmR1000Dur",m.getRpmRange1000Duration());}
        if(m.getRpmRange1100Mileage()!=null){ doc.put("rpmR1100Mil",m.getRpmRange1100Mileage());}
        if(m.getRpmRange1100Fuel()!=null){ doc.put("rpmR1100Fue",m.getRpmRange1100Fuel());}
        if(m.getRpmRange1100Duration()!=null){ doc.put("rpmR1100Dur",m.getRpmRange1100Duration());}
        if(m.getRpmRange1200Mileage()!=null){ doc.put("rpmR1200Mil",m.getRpmRange1200Mileage());}
        if(m.getRpmRange1200Fuel()!=null){ doc.put("rpmR1200Fue",m.getRpmRange1200Fuel());}
        if(m.getRpmRange1200Duration()!=null){ doc.put("rpmR1200Dur",m.getRpmRange1200Duration());}
        if(m.getRpmRange1300Mileage()!=null){ doc.put("rpmR1300Mil",m.getRpmRange1300Mileage());}
        if(m.getRpmRange1300Fuel()!=null){ doc.put("rpmR1300Fue",m.getRpmRange1300Fuel());}
        if(m.getRpmRange1300Duration()!=null){ doc.put("rpmR1300Dur",m.getRpmRange1300Duration());}
        if(m.getRpmRange1400Mileage()!=null){ doc.put("rpmR1400Mil",m.getRpmRange1400Mileage());}
        if(m.getRpmRange1400Fuel()!=null){ doc.put("rpmR1400Fue",m.getRpmRange1400Fuel());}
        if(m.getRpmRange1400Duration()!=null){ doc.put("rpmR1400Dur",m.getRpmRange1400Duration());}
        if(m.getRpmRange1500Mileage()!=null){ doc.put("rpmR1500Mil",m.getRpmRange1500Mileage());}
        if(m.getRpmRange1500Fuel()!=null){ doc.put("rpmR1500Fue",m.getRpmRange1500Fuel());}
        if(m.getRpmRange1500Duration()!=null){ doc.put("rpmR1500Dur",m.getRpmRange1500Duration());}
        if(m.getRpmRange1600Mileage()!=null){ doc.put("rpmR1600Mil",m.getRpmRange1600Mileage());}
        if(m.getRpmRange1600Fuel()!=null){ doc.put("rpmR1600Fue",m.getRpmRange1600Fuel());}
        if(m.getRpmRange1600Duration()!=null){ doc.put("rpmR1600Dur",m.getRpmRange1600Duration());}
        if(m.getRpmRange1700Mileage()!=null){ doc.put("rpmR1700Mil",m.getRpmRange1700Mileage());}
        if(m.getRpmRange1700Fuel()!=null){ doc.put("rpmR1700Fue",m.getRpmRange1700Fuel());}
        if(m.getRpmRange1700Duration()!=null){ doc.put("rpmR1700Dur",m.getRpmRange1700Duration());}
        if(m.getRpmRange1800Mileage()!=null){ doc.put("rpmR1800Mil",m.getRpmRange1800Mileage());}
        if(m.getRpmRange1800Fuel()!=null){ doc.put("rpmR1800Fue",m.getRpmRange1800Fuel());}
        if(m.getRpmRange1800Duration()!=null){ doc.put("rpmR1800Dur",m.getRpmRange1800Duration());}
        if(m.getRpmRange1900Mileage()!=null){ doc.put("rpmR1900Mil",m.getRpmRange1900Mileage());}
        if(m.getRpmRange1900Fuel()!=null){ doc.put("rpmR1900Fue",m.getRpmRange1900Fuel());}
        if(m.getRpmRange1900Duration()!=null){ doc.put("rpmR1900Dur",m.getRpmRange1900Duration());}
        if(m.getRpmRange2000Mileage()!=null){ doc.put("rpmR2000Mil",m.getRpmRange2000Mileage());}
        if(m.getRpmRange2000Fuel()!=null){ doc.put("rpmR2000Fue",m.getRpmRange2000Fuel());}
        if(m.getRpmRange2000Duration()!=null){ doc.put("rpmR2000Dur",m.getRpmRange2000Duration());}
        if(m.getRpmRange2100Mileage()!=null){ doc.put("rpmR2100Mil",m.getRpmRange2100Mileage());}
        if(m.getRpmRange2100Fuel()!=null){ doc.put("rpmR2100Fue",m.getRpmRange2100Fuel());}
        if(m.getRpmRange2100Duration()!=null){ doc.put("rpmR2100Dur",m.getRpmRange2100Duration());}
        if(m.getRpmRange2200Mileage()!=null){ doc.put("rpmR2200Mil",m.getRpmRange2200Mileage());}
        if(m.getRpmRange2200Fuel()!=null){ doc.put("rpmR2200Fue",m.getRpmRange2200Fuel());}
        if(m.getRpmRange2200Duration()!=null){ doc.put("rpmR2200Dur",m.getRpmRange2200Duration());}
        if(m.getRpmRange2300Mileage()!=null){ doc.put("rpmR2300Mil",m.getRpmRange2300Mileage());}
        if(m.getRpmRange2300Fuel()!=null){ doc.put("rpmR2300Fue",m.getRpmRange2300Fuel());}
        if(m.getRpmRange2300Duration()!=null){ doc.put("rpmR2300Dur",m.getRpmRange2300Duration());}
        if(m.getRpmRange2400Mileage()!=null){ doc.put("rpmR2400Mil",m.getRpmRange2400Mileage());}
        if(m.getRpmRange2400Fuel()!=null){ doc.put("rpmR2400Fue",m.getRpmRange2400Fuel());}
        if(m.getRpmRange2400Duration()!=null){ doc.put("rpmR2400Dur",m.getRpmRange2400Duration());}
        if(m.getRpmRange2500Mileage()!=null){ doc.put("rpmR2500Mil",m.getRpmRange2500Mileage());}
        if(m.getRpmRange2500Fuel()!=null){ doc.put("rpmR2500Fue",m.getRpmRange2500Fuel());}
        if(m.getRpmRange2500Duration()!=null){ doc.put("rpmR2500Dur",m.getRpmRange2500Duration());}
        if(m.getRpmRange2600Mileage()!=null){ doc.put("rpmR2600Mil",m.getRpmRange2600Mileage());}
        if(m.getRpmRange2600Fuel()!=null){ doc.put("rpmR2600Fue",m.getRpmRange2600Fuel());}
        if(m.getRpmRange2600Duration()!=null){ doc.put("rpmR2600Dur",m.getRpmRange2600Duration());}
        if(m.getRpmRange2700Mileage()!=null){ doc.put("rpmR2700Mil",m.getRpmRange2700Mileage());}
        if(m.getRpmRange2700Fuel()!=null){ doc.put("rpmR2700Fue",m.getRpmRange2700Fuel());}
        if(m.getRpmRange2700Duration()!=null){ doc.put("rpmR2700Dur",m.getRpmRange2700Duration());}
        if(m.getRpmRange2800Mileage()!=null){ doc.put("rpmR2800Mil",m.getRpmRange2800Mileage());}
        if(m.getRpmRange2800Fuel()!=null){ doc.put("rpmR2800Fue",m.getRpmRange2800Fuel());}
        if(m.getRpmRange2800Duration()!=null){ doc.put("rpmR2800Dur",m.getRpmRange2800Duration());}
        if(m.getRpmRange2900Mileage()!=null){ doc.put("rpmR2900Mil",m.getRpmRange2900Mileage());}
        if(m.getRpmRange2900Fuel()!=null){ doc.put("rpmR2900Fue",m.getRpmRange2900Fuel());}
        if(m.getRpmRange2900Duration()!=null){ doc.put("rpmR2900Dur",m.getRpmRange2900Duration());}
        if(m.getRpmRange3000Mileage()!=null){ doc.put("rpmR3000Mil",m.getRpmRange3000Mileage());}
        if(m.getRpmRange3000Fuel()!=null){ doc.put("rpmR3000Fue",m.getRpmRange3000Fuel());}
        if(m.getRpmRange3000Duration()!=null){ doc.put("rpmR3000Dur",m.getRpmRange3000Duration());}
        if(m.getRpmRangeOver3000Mileage()!=null){ doc.put("rpmRo3000Mil",m.getRpmRangeOver3000Mileage());}
        if(m.getRpmRangeOver3000Fuel()!=null){ doc.put("rpmRo3000Fue",m.getRpmRangeOver3000Fuel());}
        if(m.getRpmRangeOver3000Duration()!=null){ doc.put("rpmRo3000Dur",m.getRpmRangeOver3000Duration());}
//          Map<Integer,RangeData> altitudeRanges -->
//          Map<Integer,RangeData> clockRanges -->
        if(m.getWorkWaterTemp50Duration()!=null){ doc.put("workWt50Dur",m.getWorkWaterTemp50Duration());}
        if(m.getWorkWaterTemp70Duration()!=null){ doc.put("workWt70Dur",m.getWorkWaterTemp70Duration());}
        if(m.getWorkWaterTemp80Duration()!=null){ doc.put("workWt80Dur",m.getWorkWaterTemp80Duration());}
        if(m.getWorkWaterTemp85Duration()!=null){ doc.put("workWt85Dur",m.getWorkWaterTemp85Duration());}
        if(m.getWorkWaterTemp90Duration()!=null){ doc.put("workWt90Dur",m.getWorkWaterTemp90Duration());}
        if(m.getWorkWaterTemp95Duration()!=null){ doc.put("workWt95Dur",m.getWorkWaterTemp95Duration());}
        if(m.getWorkWaterTemp100Duration()!=null){ doc.put("workWt100Dur",m.getWorkWaterTemp100Duration());}
        if(m.getWorkWaterTemp105Duration()!=null){ doc.put("workWt105Dur",m.getWorkWaterTemp105Duration());}
        if(m.getWorkWaterTemp110Duration()!=null){ doc.put("workWt110Dur",m.getWorkWaterTemp110Duration());}
        if(m.getWorkWaterTemp115Duration()!=null){ doc.put("workWt115Dur",m.getWorkWaterTemp115Duration());}
        if(m.getWorkWaterTemp120Duration()!=null){ doc.put("workWt120Dur",m.getWorkWaterTemp120Duration());}
        if(m.getWorkWaterTemp125Duration()!=null){ doc.put("workWt125Dur",m.getWorkWaterTemp125Duration());}
        if(m.getWorkWaterTemp130Duration()!=null){ doc.put("workWt130Dur",m.getWorkWaterTemp130Duration());}
        if(m.getWorkWaterTemp135Duration()!=null){ doc.put("workWt135Dur",m.getWorkWaterTemp135Duration());}
        if(m.getWorkWaterTemp140Duration()!=null){ doc.put("workWt140Dur",m.getWorkWaterTemp140Duration());}
        if(m.getWorkWaterTemp145Duration()!=null){ doc.put("workWt145Dur",m.getWorkWaterTemp145Duration());}
        if(m.getWorkWaterTemp150Duration()!=null){ doc.put("workWt150Dur",m.getWorkWaterTemp150Duration());}
        if(m.getWorkWaterTempOver150Duration()!=null){ doc.put("workWto150Dur",m.getWorkWaterTempOver150Duration());}
        if(m.getIdleWaterTemp50Duration()!=null){ doc.put("idleWt50Dur",m.getIdleWaterTemp50Duration());}
        if(m.getIdleWaterTemp70Duration()!=null){ doc.put("idleWt70Dur",m.getIdleWaterTemp70Duration());}
        if(m.getIdleWaterTemp80Duration()!=null){ doc.put("idleWt80Dur",m.getIdleWaterTemp80Duration());}
        if(m.getIdleWaterTemp85Duration()!=null){ doc.put("idleWt85Dur",m.getIdleWaterTemp85Duration());}
        if(m.getIdleWaterTemp90Duration()!=null){ doc.put("idleWt90Dur",m.getIdleWaterTemp90Duration());}
        if(m.getIdleWaterTemp95Duration()!=null){ doc.put("idleWt95Dur",m.getIdleWaterTemp95Duration());}
        if(m.getIdleWaterTemp100Duration()!=null){ doc.put("idleWt100Dur",m.getIdleWaterTemp100Duration());}
        if(m.getIdleWaterTemp105Duration()!=null){ doc.put("idleWt105Dur",m.getIdleWaterTemp105Duration());}
        if(m.getIdleWaterTemp110Duration()!=null){ doc.put("idleWt110Dur",m.getIdleWaterTemp110Duration());}
        if(m.getIdleWaterTemp115Duration()!=null){ doc.put("idleWt115Dur",m.getIdleWaterTemp115Duration());}
        if(m.getIdleWaterTemp120Duration()!=null){ doc.put("idleWt120Dur",m.getIdleWaterTemp120Duration());}
        if(m.getIdleWaterTemp125Duration()!=null){ doc.put("idleWt125Dur",m.getIdleWaterTemp125Duration());}
        if(m.getIdleWaterTemp130Duration()!=null){ doc.put("idleWt130Dur",m.getIdleWaterTemp130Duration());}
        if(m.getIdleWaterTemp135Duration()!=null){ doc.put("idleWt135Dur",m.getIdleWaterTemp135Duration());}
        if(m.getIdleWaterTemp140Duration()!=null){ doc.put("idleWt140Dur",m.getIdleWaterTemp140Duration());}
        if(m.getIdleWaterTemp145Duration()!=null){ doc.put("idleWt145Dur",m.getIdleWaterTemp145Duration());}
        if(m.getIdleWaterTemp150Duration()!=null){ doc.put("idleWt150Dur",m.getIdleWaterTemp150Duration());}
        if(m.getIdleWaterTempOver150Duration()!=null){ doc.put("idleWto150Dur",m.getIdleWaterTempOver150Duration());}
        if(m.getMaxWorkWaterTemp()!=null){ doc.put("maxWwTemp",m.getMaxWorkWaterTemp());}
        if(m.getMinWorkWaterTemp()!=null){ doc.put("minWwTemp",m.getMinWorkWaterTemp());}
        if(m.getWorkWaterTempSum()!=null){ doc.put("workWtSum",m.getWorkWaterTempSum());}
        if(m.getWorkWaterTempCount()!=null){ doc.put("workWtCount",m.getWorkWaterTempCount());}
        if(m.getMaxIdleWaterTemp()!=null){ doc.put("maxIwTemp",m.getMaxIdleWaterTemp());}
        if(m.getMinIdleWaterTemp()!=null){ doc.put("minIwTemp",m.getMinIdleWaterTemp());}
        if(m.getIdleWaterTempSum()!=null){ doc.put("idleWtSum",m.getIdleWaterTempSum());}
        if(m.getIdleWaterTempCount()!=null){ doc.put("idleWtCount",m.getIdleWaterTempCount());}
        if(m.getGasOpenPercent0Duration()!=null){ doc.put("gasOp0Dur",m.getGasOpenPercent0Duration());}
        if(m.getGasOpenPercent10Duration()!=null){ doc.put("gasOp10Dur",m.getGasOpenPercent10Duration());}
        if(m.getGasOpenPercent20Duration()!=null){ doc.put("gasOp20Dur",m.getGasOpenPercent20Duration());}
        if(m.getGasOpenPercent30Duration()!=null){ doc.put("gasOp30Dur",m.getGasOpenPercent30Duration());}
        if(m.getGasOpenPercent40Duration()!=null){ doc.put("gasOp40Dur",m.getGasOpenPercent40Duration());}
        if(m.getGasOpenPercent50Duration()!=null){ doc.put("gasOp50Dur",m.getGasOpenPercent50Duration());}
        if(m.getGasOpenPercent60Duration()!=null){ doc.put("gasOp60Dur",m.getGasOpenPercent60Duration());}
        if(m.getGasOpenPercent70Duration()!=null){ doc.put("gasOp70Dur",m.getGasOpenPercent70Duration());}
        if(m.getGasOpenPercent80Duration()!=null){ doc.put("gasOp80Dur",m.getGasOpenPercent80Duration());}
        if(m.getGasOpenPercent90Duration()!=null){ doc.put("gasOp90Dur",m.getGasOpenPercent90Duration());}
        if(m.getGasOpenPercent99Duration()!=null){ doc.put("gasOp99Dur",m.getGasOpenPercent99Duration());}
        if(m.getGasOpenPercent100Duration()!=null){ doc.put("gasOp100Dur",m.getGasOpenPercent100Duration());}
        if(m.getTorque0Duration()!=null){ doc.put("torque0Dur",m.getTorque0Duration());}
        if(m.getTorque10Duration()!=null){ doc.put("torque10Dur",m.getTorque10Duration());}
        if(m.getTorque20Duration()!=null){ doc.put("torque20Dur",m.getTorque20Duration());}
        if(m.getTorque30Duration()!=null){ doc.put("torque30Dur",m.getTorque30Duration());}
        if(m.getTorque40Duration()!=null){ doc.put("torque40Dur",m.getTorque40Duration());}
        if(m.getTorque50Duration()!=null){ doc.put("torque50Dur",m.getTorque50Duration());}
        if(m.getTorque60Duration()!=null){ doc.put("torque60Dur",m.getTorque60Duration());}
        if(m.getTorque70Duration()!=null){ doc.put("torque70Dur",m.getTorque70Duration());}
        if(m.getTorque80Duration()!=null){ doc.put("torque80Dur",m.getTorque80Duration());}
        if(m.getTorque90Duration()!=null){ doc.put("torque90Dur",m.getTorque90Duration());}
        if(m.getTorque99Duration()!=null){ doc.put("torque99Dur",m.getTorque99Duration());}
        if(m.getTorque100Duration()!=null){ doc.put("torque100Dur",m.getTorque100Duration());}
        if(m.getMaxTorque()!=null){ doc.put("maxTorque",m.getMaxTorque());}
        if(m.getMinTorque()!=null){ doc.put("minTorque",m.getMinTorque());}
        if(m.getTorqueSum()!=null){ doc.put("torqueSum",m.getTorqueSum());}
        if(m.getTorqueCount()!=null){ doc.put("torqueCount",m.getTorqueCount());}
        if(m.getNoIdleRpmSum()!=null){ doc.put("noIrSum",m.getNoIdleRpmSum());}
        if(m.getNoIdleRpmCount()!=null){ doc.put("noIrCount",m.getNoIdleRpmCount());}
        if(m.getRpmSum()!=null){ doc.put("rpmSum",m.getRpmSum());}
        if(m.getRpmCount()!=null){ doc.put("rpmCount",m.getRpmCount());}
        if(m.getMaxRpm()!=null){ doc.put("maxRpm",m.getMaxRpm());}
        if(m.getMinRpm()!=null){ doc.put("minRpm",m.getMinRpm());}
        if(m.getIat50Duration()!=null){ doc.put("iat50Dur",m.getIat50Duration());}
        if(m.getIat70Duration()!=null){ doc.put("iat70Dur",m.getIat70Duration());}
        if(m.getIat80Duration()!=null){ doc.put("iat80Dur",m.getIat80Duration());}
        if(m.getIat85Duration()!=null){ doc.put("iat85Dur",m.getIat85Duration());}
        if(m.getIat90Duration()!=null){ doc.put("iat90Dur",m.getIat90Duration());}
        if(m.getIat95Duration()!=null){ doc.put("iat95Dur",m.getIat95Duration());}
        if(m.getIat100Duration()!=null){ doc.put("iat100Dur",m.getIat100Duration());}
        if(m.getIat105Duration()!=null){ doc.put("iat105Dur",m.getIat105Duration());}
        if(m.getIat110Duration()!=null){ doc.put("iat110Dur",m.getIat110Duration());}
        if(m.getIat115Duration()!=null){ doc.put("iat115Dur",m.getIat115Duration());}
        if(m.getIat120Duration()!=null){ doc.put("iat120Dur",m.getIat120Duration());}
        if(m.getIat125Duration()!=null){ doc.put("iat125Dur",m.getIat125Duration());}
        if(m.getIat130Duration()!=null){ doc.put("iat130Dur",m.getIat130Duration());}
        if(m.getIat135Duration()!=null){ doc.put("iat135Dur",m.getIat135Duration());}
        if(m.getIat140Duration()!=null){ doc.put("iat140Dur",m.getIat140Duration());}
        if(m.getIat145Duration()!=null){ doc.put("iat145Dur",m.getIat145Duration());}
        if(m.getIat150Duration()!=null){ doc.put("iat150Dur",m.getIat150Duration());}
        if(m.getIatOver150Duration()!=null){ doc.put("iatO150Dur",m.getIatOver150Duration());}
        if(m.getIatSum()!=null){ doc.put("iatSum",m.getIatSum());}
        if(m.getIatCount()!=null){ doc.put("iatCount",m.getIatCount());}
        if(m.getMaxIat()!=null){ doc.put("maxIat",m.getMaxIat());}
        if(m.getMinIat()!=null){ doc.put("minIat",m.getMinIat());}
        if(m.getIp50Duration()!=null){ doc.put("ip50Dur",m.getIp50Duration());}
        if(m.getIp60Duration()!=null){ doc.put("ip60Dur",m.getIp60Duration());}
        if(m.getIp70Duration()!=null){ doc.put("ip70Dur",m.getIp70Duration());}
        if(m.getIp80Duration()!=null){ doc.put("ip80Dur",m.getIp80Duration());}
        if(m.getIp90Duration()!=null){ doc.put("ip90Dur",m.getIp90Duration());}
        if(m.getIp100Duration()!=null){ doc.put("ip100Dur",m.getIp100Duration());}
        if(m.getIp110Duration()!=null){ doc.put("ip110Dur",m.getIp110Duration());}
        if(m.getIp120Duration()!=null){ doc.put("ip120Dur",m.getIp120Duration());}
        if(m.getIp130Duration()!=null){ doc.put("ip130Dur",m.getIp130Duration());}
        if(m.getIp140Duration()!=null){ doc.put("ip140Dur",m.getIp140Duration());}
        if(m.getIp150Duration()!=null){ doc.put("ip150Dur",m.getIp150Duration());}
        if(m.getIpOver150Duration()!=null){ doc.put("ipO150Dur",m.getIpOver150Duration());}
        if(m.getIpSum()!=null){ doc.put("ipSum",m.getIpSum());}
        if(m.getIpCount()!=null){ doc.put("ipCount",m.getIpCount());}
        if(m.getMaxIp()!=null){ doc.put("maxIp",m.getMaxIp());}
        if(m.getMinIp()!=null){ doc.put("minIp",m.getMinIp());}
        if(m.getCrossCities()!=null){ doc.put("crossCities",m.getCrossCities());}
        if(m.getSo90Number()!=null){ doc.put("so90Num",m.getSo90Number());}
        if(m.getSo90Duration()!=null){ doc.put("so90Dur",m.getSo90Duration());}
        if(m.getSo90Mileage()!=null){ doc.put("so90Mil",m.getSo90Mileage());}
        if(m.getSo120Number()!=null){ doc.put("so120Num",m.getSo120Number());}
        if(m.getSo120Duration()!=null){ doc.put("so120Dur",m.getSo120Duration());}
        if(m.getSo120Mileage()!=null){ doc.put("so120Mil",m.getSo120Mileage());}
        if(m.getSrNumber()!=null){ doc.put("srNum",m.getSrNumber());}
        if(m.getSrDuration()!=null){ doc.put("srDur",m.getSrDuration());}
        if(m.getSrMileage()!=null){ doc.put("srMil",m.getSrMileage());}
        if(m.getSrFuel()!=null){ doc.put("srFue",m.getSrFuel());}
        if(m.getLrogNumber()!=null){ doc.put("lrogNum",m.getLrogNumber());}
        if(m.getLrogDuration()!=null){ doc.put("lrogDur",m.getLrogDuration());}
        if(m.getLrogMileage()!=null){ doc.put("lrogMil",m.getLrogMileage());}
        if(m.getLrogFuel()!=null){ doc.put("lrogFue",m.getLrogFuel());}
        if(m.getHsbNumber()!=null){ doc.put("hsbNum",m.getHsbNumber());}
        if(m.getHsbDuration()!=null){ doc.put("hsbDur",m.getHsbDuration());}
        if(m.getHsbMileage()!=null){ doc.put("hsbMil",m.getHsbMileage());}
        if(m.getCsbNumber()!=null){ doc.put("csbNum",m.getCsbNumber());}
        if(m.getCsbDuration()!=null){ doc.put("csbDur",m.getCsbDuration());}
        if(m.getCsbMileage()!=null){ doc.put("csbMil",m.getCsbMileage());}
        if(m.getClutchNumber()!=null){ doc.put("clutchNum",m.getClutchNumber());}
        if(m.getClutchDuration()!=null){ doc.put("clutchDur",m.getClutchDuration());}
        if(m.getClutchMileage()!=null){ doc.put("clutchMil",m.getClutchMileage());}
        if(m.getSharpTurningNumber()!=null){ doc.put("shartTNum",m.getSharpTurningNumber());}
        if(m.getSharpTurningMil()!=null){ doc.put("shartTMil",m.getSharpTurningMil());}
        if(m.getSo90Fuel()!=null){ doc.put("so90Fue",m.getSo90Fuel());}
        if(m.getSo120Fuel()!=null){ doc.put("so120Fue",m.getSo120Fuel());}
        if(m.getFatigueDrivingDuration()!=null){ doc.put("fatigueDur",m.getFatigueDrivingDuration());}
        if(m.getPreciseFlag()!=null){ doc.put("pcsFlag",m.getPreciseFlag());}
        if(m.getWloadType()!=null){ doc.put("wlType",m.getWloadType());}
//          List<InterCrossCity> ccDetail -->
        /*--end_schema*/
        putRangeData(doc, m.getAltitudeRanges(), "altitudeRanges");
        putRangeData(doc, m.getClockRanges(), "clockRanges");
        doc.put("day", m.getDay());
        doc.put("ccDetail", JsonUtils.toJsonStr(m.getCrossCitiesDetail()));
        doc.put("fuel100KM", m.fuel100KM());
        doc.put("avgSpeedNoIdle", m.avgSpeedNoIdle());
        doc.put("avgSpeed", m.avgSpeed());
        doc.put("ecoProportion", m.ecoProportion());
        doc.put("brakeTimes", m.brakeTimes());

        //东风新增，急加速
        if(m.getSharpUpSpeedMileage_DF()!=null){ doc.put("sharpUsMil_DF",m.getSharpUpSpeedMileage_DF());}
        if(m.getSharpUpSpeedFuel_DF()!=null){ doc.put("sharpUsFue_DF",m.getSharpUpSpeedFuel_DF());}
        if(m.getSharpUpSpeedDuration_DF()!=null){ doc.put("sharpUsDur_DF",m.getSharpUpSpeedDuration_DF());}
        if(m.getSharpUpSpeedNumber_DF()!=null){ doc.put("sharpUsNum_DF",m.getSharpUpSpeedNumber_DF());}
        //东风新增，急减速
        if(m.getSharpDownSpeedMileage_DF()!=null){ doc.put("sharpDsMil_DF",m.getSharpDownSpeedMileage_DF());}
        if(m.getSharpDownSpeedFuel_DF()!=null){ doc.put("sharpDsFue_DF",m.getSharpDownSpeedFuel_DF());}
        if(m.getSharpDownSpeedDuration_DF()!=null){ doc.put("sharpDsDur_DF",m.getSharpDownSpeedDuration_DF());}
        if(m.getSharpDownSpeedNumber_DF()!=null){ doc.put("sharpDsNum_DF",m.getSharpDownSpeedNumber_DF());}
        //东风新增，急转弯
        if(m.getSharpTurningNumber_DF()!=null){ doc.put("sharpTNum_DF",m.getSharpTurningNumber_DF());}
        //东风新增，超长怠速
        if(m.getLongIdleFuel_DF()!=null){ doc.put("longIdleFue_DF",m.getLongIdleFuel_DF());}
        if(m.getLongIdleDuration_DF()!=null){ doc.put("longIdleDur_DF",m.getLongIdleDuration_DF());}
        if(m.getLongIdleNumber_DF()!=null){ doc.put("longIdleNum_DF",m.getLongIdleNumber_DF());}
        //东风新增，冷车运行
        if(m.getColdRunningMileage_DF()!=null){ doc.put("coldRunMil_DF",m.getColdRunningMileage_DF());}
        if(m.getColdRunningFuel_DF()!=null){ doc.put("coldRunFue_DF",m.getColdRunningFuel_DF());}
        if(m.getColdRunningDuration_DF()!=null){ doc.put("coldRunDur_DF",m.getColdRunningDuration_DF());}
        if(m.getColdRunningNumber_DF()!=null){ doc.put("coldRunNum_DF",m.getColdRunningNumber_DF());}
        //东风新增，夜晚开车
        if(m.getNightRunningMileage_DF()!=null){ doc.put("nightRunMil_DF",m.getNightRunningMileage_DF());}
        if(m.getNightRunningFuel_DF()!=null){ doc.put("nightRunFue_DF",m.getNightRunningFuel_DF());}
        if(m.getNightRunningDuration_DF()!=null){ doc.put("nightRunDur_DF",m.getNightRunningDuration_DF());}
        if(m.getNightRunningNumber_DF()!=null){ doc.put("nightRunNum_DF",m.getNightRunningNumber_DF());}
        //东风新增，引擎高转速
        if(m.getHighRotationMileage_DF()!=null){ doc.put("hrMil_DF",m.getHighRotationMileage_DF());}
        if(m.getHighRotationFuel_DF()!=null){ doc.put("hrFue_DF",m.getHighRotationFuel_DF());}
        if(m.getHighRotationDuration_DF()!=null){ doc.put("hrDur_DF",m.getHighRotationDuration_DF());}
        if(m.getHighRotationNumber_DF()!=null){ doc.put("hrNum_DF",m.getHighRotationNumber_DF());}
        //东风新增，大油门
        if(m.getLargeGasMileage_DF()!=null){ doc.put("lGasMil_DF",m.getLargeGasMileage_DF());}
        if(m.getLargeGasFuel_DF()!=null){ doc.put("lGasFue_DF",m.getLargeGasFuel_DF());}
        if(m.getLargeGasDuration_DF()!=null){ doc.put("lGasDur_DF",m.getLargeGasDuration_DF());}
        if(m.getLargeGasNumber_DF()!=null){ doc.put("lGasNum_DF",m.getLargeGasNumber_DF());}
        //东风新增，全油门
        if(m.getFullGasMileage_DF()!=null){ doc.put("fGasMil_DF",m.getFullGasMileage_DF());}
        if(m.getFullGasFuel_DF()!=null){ doc.put("fGasFue_DF",m.getFullGasFuel_DF());}
        if(m.getFullGasDuration_DF()!=null){ doc.put("fGasDur_DF",m.getFullGasDuration_DF());}
        if(m.getFullGasNumber_DF()!=null){ doc.put("fGasNum_DF",m.getFullGasNumber_DF());}
        //东风新增，高速行驶
        if(m.getFastSpeedMileage_DF()!=null){ doc.put("fSpeedMil_DF",m.getFastSpeedMileage_DF());}
        if(m.getFastSpeedFuel_DF()!=null){ doc.put("fSpeedFue_DF",m.getFastSpeedFuel_DF());}
        if(m.getFastSpeedDuration_DF()!=null){ doc.put("fSpeedDur_DF",m.getFastSpeedDuration_DF());}
        if(m.getFastSpeedNumber_DF()!=null){ doc.put("fSpeedNum_DF",m.getFastSpeedNumber_DF());}
        //东风新增，空挡滑行
        if(m.getNeutralGearCoastMileage_DF()!=null){ doc.put("neutralGcMil_DF",m.getNeutralGearCoastMileage_DF());}
        if(m.getNeutralGearCoastFuel_DF()!=null){ doc.put("neutralGcFue_DF",m.getNeutralGearCoastFuel_DF());}
        if(m.getNeutralGearCoastDuration_DF()!=null){ doc.put("neutralGcDur_DF",m.getNeutralGearCoastDuration_DF());}
        if(m.getNeutralGearCoastNumber_DF()!=null){ doc.put("neutralGcNum_DF",m.getNeutralGearCoastNumber_DF());}
        //东风新增，熄火滑行
        if(m.getFlameoutCoastMileage_DF()!=null){ doc.put("fCoastMil_DF",m.getFlameoutCoastMileage_DF());}
        if(m.getFlameoutCoastFuel_DF()!=null){ doc.put("fCoastFue_DF",m.getFlameoutCoastFuel_DF());}
        if(m.getFlameoutCoastDuration_DF()!=null){ doc.put("fCoastDur_DF",m.getFlameoutCoastDuration_DF());}
        if(m.getFlameoutCoastNumber_DF()!=null){ doc.put("fCoastNum_DF",m.getFlameoutCoastNumber_DF());}
        //东风新增，载重
        if(m.getAmtLoad_DF()!=null){ doc.put("amtLoad_DF",m.getAmtLoad_DF());}
        if(m.getVecuLoad_DF()!=null){ doc.put("vecuLoad_DF",m.getVecuLoad_DF());}
        if(m.getLoadType_DF()!=null){ doc.put("loadType_DF",m.getLoadType_DF());}


        return doc;
    }

    @Override
    public OuterStatisticData fromDocument(Document doc) {
        OuterStatisticData m = new OuterStatisticData();
        /*--start_row*/
        if(doc.containsKey("uid")){ m.setUid(doc.getLong("uid"));}
        if(doc.containsKey("tid")){ m.setTid(doc.getLong("tid"));}
        if(doc.containsKey("tripId")){ m.setTripId(doc.getInteger("tripId"));}
        if(doc.containsKey("routeSTime")){ m.setRouteStartTime(doc.getLong("routeSTime"));}
        if(doc.containsKey("routeSLc")){ m.setRouteStartLc(doc.getInteger("routeSLc"));}
        if(doc.containsKey("routeSLatitude")){ m.setRouteStartLatitude(doc.getInteger("routeSLatitude"));}
        if(doc.containsKey("routeSLongitude")){ m.setRouteStartLongitude(doc.getInteger("routeSLongitude"));}
        if(doc.containsKey("routeSHeight")){ m.setRouteStartHeight(doc.getInteger("routeSHeight"));}
        if(doc.containsKey("routeSDir")){ m.setRouteStartDirection(doc.getInteger("routeSDir"));}
        if(doc.containsKey("routeSMil")){ m.setRouteStartMileage(doc.getInteger("routeSMil"));}
        if(doc.containsKey("routeSFue")){ m.setRouteStartFuel(doc.getInteger("routeSFue"));}
        if(doc.containsKey("routeETime")){ m.setRouteEndTime(doc.getLong("routeETime"));}
        if(doc.containsKey("routeELc")){ m.setRouteEndLc(doc.getInteger("routeELc"));}
        if(doc.containsKey("routeELatitude")){ m.setRouteEndLatitude(doc.getInteger("routeELatitude"));}
        if(doc.containsKey("routeELongitude")){ m.setRouteEndLongitude(doc.getInteger("routeELongitude"));}
        if(doc.containsKey("routeEHeight")){ m.setRouteEndHeight(doc.getInteger("routeEHeight"));}
        if(doc.containsKey("routeEDir")){ m.setRouteEndDirection(doc.getInteger("routeEDir"));}
        if(doc.containsKey("routeEMil")){ m.setRouteEndMileage(doc.getInteger("routeEMil"));}
        if(doc.containsKey("routeEFue")){ m.setRouteEndFuel(doc.getInteger("routeEFue"));}
        if(doc.containsKey("routeIMil")){ m.setRouteIntegralMileage(doc.getInteger("routeIMil"));}
        if(doc.containsKey("routeIFue")){ m.setRouteIntegralFuel(doc.getInteger("routeIFue"));}
        if(doc.containsKey("tripPower")){ m.setTripPower(doc.getInteger("tripPower"));}
        if(doc.containsKey("stype")){ m.setStype(doc.getInteger("stype"));}
        if(doc.containsKey("tripMil")){ m.setTripMileage(doc.getInteger("tripMil"));}
        if(doc.containsKey("tripFue")){ m.setTripFuel(doc.getInteger("tripFue"));}
        if(doc.containsKey("tripDur")){ m.setTripDuration(doc.getInteger("tripDur"));}
        if(doc.containsKey("routeSFlag")){ m.setRouteStopFlag(doc.getInteger("routeSFlag"));}
        if(doc.containsKey("crossDFlag")){ m.setCrossDayFlag(doc.getInteger("crossDFlag"));}
        if(doc.containsKey("forceEFlag")){ m.setForceEndFlag(doc.getInteger("forceEFlag"));}
        if(doc.containsKey("maxSpeed")){ m.setMaxSpeed(doc.getInteger("maxSpeed"));}
        if(doc.containsKey("minSpeed")){ m.setMinSpeed(doc.getInteger("minSpeed"));}
        if(doc.containsKey("maxUSpeed")){ m.setMaxUsefulSpeed(doc.getInteger("maxUSpeed"));}
        if(doc.containsKey("minUSpeed")){ m.setMinUsefulSpeed(doc.getInteger("minUSpeed"));}
        if(doc.containsKey("inGcMil")){ m.setInGearCoastMileage(doc.getInteger("inGcMil"));}
        if(doc.containsKey("inGcDur")){ m.setInGearCoastDuration(doc.getInteger("inGcDur"));}
        if(doc.containsKey("inGcNum")){ m.setInGearCoastNumber(doc.getInteger("inGcNum"));}
        if(doc.containsKey("brakeNum")){ m.setBrakeNumber(doc.getInteger("brakeNum"));}
        if(doc.containsKey("brakeMil")){ m.setBrakeMileage(doc.getInteger("brakeMil"));}
        if(doc.containsKey("brakeDur")){ m.setBrakeDuration(doc.getInteger("brakeDur"));}
        if(doc.containsKey("vehicleELoad")){ m.setVehicleEstimatedLoad(doc.getInteger("vehicleELoad"));}
        if(doc.containsKey("neutralGcDur")){ m.setNeutralGearCoastDuration(doc.getInteger("neutralGcDur"));}
        if(doc.containsKey("neutralGcFue")){ m.setNeutralGearCoastFuel(doc.getInteger("neutralGcFue"));}
        if(doc.containsKey("neutralGcMil")){ m.setNeutralGearCoastMileage(doc.getInteger("neutralGcMil"));}
        if(doc.containsKey("neutralGcNum")){ m.setNeutralGearCoastNumber(doc.getInteger("neutralGcNum"));}
        if(doc.containsKey("idleFue")){ m.setIdleFuel(doc.getInteger("idleFue"));}
        if(doc.containsKey("idleDur")){ m.setIdleDuration(doc.getInteger("idleDur"));}
        if(doc.containsKey("idleNum")){ m.setIdleNumber(doc.getInteger("idleNum"));}
        if(doc.containsKey("parkingPoDur")){ m.setParkingPowerOnDuration(doc.getInteger("parkingPoDur"));}
        if(doc.containsKey("cityDMil")){ m.setCityDrivingMileage(doc.getInteger("cityDMil"));}
        if(doc.containsKey("cityDDur")){ m.setCityDrivingDuration(doc.getInteger("cityDDur"));}
        if(doc.containsKey("cityDFue")){ m.setCityDrivingFuel(doc.getInteger("cityDFue"));}
        if(doc.containsKey("ruralDMil")){ m.setRuralDrivingMileage(doc.getInteger("ruralDMil"));}
        if(doc.containsKey("ruralDDur")){ m.setRuralDrivingDuration(doc.getInteger("ruralDDur"));}
        if(doc.containsKey("ruralDFue")){ m.setRuralDrivingFuel(doc.getInteger("ruralDFue"));}
        if(doc.containsKey("ecoDMil")){ m.setEcoDrivingMileage(doc.getInteger("ecoDMil"));}
        if(doc.containsKey("ecoDDur")){ m.setEcoDrivingDuration(doc.getInteger("ecoDDur"));}
        if(doc.containsKey("ecoDFue")){ m.setEcoDrivingFuel(doc.getInteger("ecoDFue"));}
        if(doc.containsKey("upSdMil")){ m.setUpSlopeDrivingMileage(doc.getInteger("upSdMil"));}
        if(doc.containsKey("upSdDur")){ m.setUpSlopeDrivingDuration(doc.getInteger("upSdDur"));}
        if(doc.containsKey("upSdFue")){ m.setUpSlopeDrivingFuel(doc.getInteger("upSdFue"));}
        if(doc.containsKey("downSdMil")){ m.setDownSlopeDrivingMileage(doc.getInteger("downSdMil"));}
        if(doc.containsKey("downSdDur")){ m.setDownSlopeDrivingDuration(doc.getInteger("downSdDur"));}
        if(doc.containsKey("downSdFue")){ m.setDownSlopeDrivingFuel(doc.getInteger("downSdFue"));}
        if(doc.containsKey("levelRdMil")){ m.setLevelRoadDrivingMileage(doc.getInteger("levelRdMil"));}
        if(doc.containsKey("levelRdDur")){ m.setLevelRoadDrivingDuration(doc.getInteger("levelRdDur"));}
        if(doc.containsKey("levelRdFue")){ m.setLevelRoadDrivingFuel(doc.getInteger("levelRdFue"));}
        if(doc.containsKey("cruiseMil")){ m.setCruiseMileage(doc.getInteger("cruiseMil"));}
        if(doc.containsKey("cruiseDur")){ m.setCruiseDuration(doc.getInteger("cruiseDur"));}
        if(doc.containsKey("cruiseFue")){ m.setCruiseFuel(doc.getInteger("cruiseFue"));}
        if(doc.containsKey("shiftGNum")){ m.setShiftGearsNumber(doc.getInteger("shiftGNum"));}
        if(doc.containsKey("sharpDsDur")){ m.setSharpDownSpeedDuration(doc.getInteger("sharpDsDur"));}
        if(doc.containsKey("sharpDsMil")){ m.setSharpDownSpeedMileage(doc.getInteger("sharpDsMil"));}
        if(doc.containsKey("sharpDsNum")){ m.setSharpDownSpeedNumber(doc.getInteger("sharpDsNum"));}
        if(doc.containsKey("sharpUsDur")){ m.setSharpUpSpeedDuration(doc.getInteger("sharpUsDur"));}
        if(doc.containsKey("sharpUsMil")){ m.setSharpUpSpeedMileage(doc.getInteger("sharpUsMil"));}
        if(doc.containsKey("sharpUsNum")){ m.setSharpUpSpeedNumber(doc.getInteger("sharpUsNum"));}
        if(doc.containsKey("sharpUsFue")){ m.setSharpUpSpeedFuel(doc.getInteger("sharpUsFue"));}
        if(doc.containsKey("sharpSogMil")){ m.setSharpStepOnGasMileage(doc.getInteger("sharpSogMil"));}
        if(doc.containsKey("sharpSogDur")){ m.setSharpStepOnGasDuration(doc.getInteger("sharpSogDur"));}
        if(doc.containsKey("sharpSogFue")){ m.setSharpStepOnGasFuel(doc.getInteger("sharpSogFue"));}
        if(doc.containsKey("sharpSogNum")){ m.setSharpStepOnGasNumber(doc.getInteger("sharpSogNum"));}
        if(doc.containsKey("vehiclePNum")){ m.setVehicleParkNumber(doc.getInteger("vehiclePNum"));}
        if(doc.containsKey("vehicleSNum")){ m.setVehicleStartNumber(doc.getInteger("vehicleSNum"));}
        if(doc.containsKey("vehicleSMil")){ m.setVehicleStartMileage(doc.getInteger("vehicleSMil"));}
        if(doc.containsKey("vehicleSDur")){ m.setVehicleStartDuration(doc.getInteger("vehicleSDur"));}
        if(doc.containsKey("vehicleSFue")){ m.setVehicleStartFuel(doc.getInteger("vehicleSFue"));}
        if(doc.containsKey("vehicleCsNum")){ m.setVehicleColdStartNumber(doc.getInteger("vehicleCsNum"));}
        if(doc.containsKey("vehicleCsMil")){ m.setVehicleColdStartMileage(doc.getInteger("vehicleCsMil"));}
        if(doc.containsKey("vehicleCsDur")){ m.setVehicleColdStartDuration(doc.getInteger("vehicleCsDur"));}
        if(doc.containsKey("vehicleCsFue")){ m.setVehicleColdStartFuel(doc.getInteger("vehicleCsFue"));}
        if(doc.containsKey("chargeFPercent")){ m.setChargeFuelPercent(doc.getInteger("chargeFPercent"));}
        if(doc.containsKey("chargeFue")){ m.setChargeFuel(doc.getInteger("chargeFue"));}
        if(doc.containsKey("leakFPercent")){ m.setLeakFuelPercent(doc.getInteger("leakFPercent"));}
        if(doc.containsKey("leakFue")){ m.setLeakFuel(doc.getInteger("leakFue"));}
        if(doc.containsKey("gasSNum")){ m.setGasStabilityNumber(doc.getInteger("gasSNum"));}
        if(doc.containsKey("gasSDur")){ m.setGasStabilityDuration(doc.getInteger("gasSDur"));}
        if(doc.containsKey("gasOpSum")){ m.setGasOpenPercentSum(doc.getLong("gasOpSum"));}
        if(doc.containsKey("gasOpCount")){ m.setGasOpenPercentCount(doc.getInteger("gasOpCount"));}
        if(doc.containsKey("speedR01Mil")){ m.setSpeedRange01Mileage(doc.getInteger("speedR01Mil"));}
        if(doc.containsKey("speedR01Dur")){ m.setSpeedRange01Duration(doc.getInteger("speedR01Dur"));}
        if(doc.containsKey("speedR01Fue")){ m.setSpeedRange01Fuel(doc.getInteger("speedR01Fue"));}
        if(doc.containsKey("speedR02Mil")){ m.setSpeedRange02Mileage(doc.getInteger("speedR02Mil"));}
        if(doc.containsKey("speedR02Dur")){ m.setSpeedRange02Duration(doc.getInteger("speedR02Dur"));}
        if(doc.containsKey("speedR02Fue")){ m.setSpeedRange02Fuel(doc.getInteger("speedR02Fue"));}
        if(doc.containsKey("speedR03Mil")){ m.setSpeedRange03Mileage(doc.getInteger("speedR03Mil"));}
        if(doc.containsKey("speedR03Dur")){ m.setSpeedRange03Duration(doc.getInteger("speedR03Dur"));}
        if(doc.containsKey("speedR03Fue")){ m.setSpeedRange03Fuel(doc.getInteger("speedR03Fue"));}
        if(doc.containsKey("speedR04Mil")){ m.setSpeedRange04Mileage(doc.getInteger("speedR04Mil"));}
        if(doc.containsKey("speedR04Dur")){ m.setSpeedRange04Duration(doc.getInteger("speedR04Dur"));}
        if(doc.containsKey("speedR04Fue")){ m.setSpeedRange04Fuel(doc.getInteger("speedR04Fue"));}
        if(doc.containsKey("speedR05Mil")){ m.setSpeedRange05Mileage(doc.getInteger("speedR05Mil"));}
        if(doc.containsKey("speedR05Dur")){ m.setSpeedRange05Duration(doc.getInteger("speedR05Dur"));}
        if(doc.containsKey("speedR05Fue")){ m.setSpeedRange05Fuel(doc.getInteger("speedR05Fue"));}
        if(doc.containsKey("speedR06Mil")){ m.setSpeedRange06Mileage(doc.getInteger("speedR06Mil"));}
        if(doc.containsKey("speedR06Dur")){ m.setSpeedRange06Duration(doc.getInteger("speedR06Dur"));}
        if(doc.containsKey("speedR06Fue")){ m.setSpeedRange06Fuel(doc.getInteger("speedR06Fue"));}
        if(doc.containsKey("speedR07Mil")){ m.setSpeedRange07Mileage(doc.getInteger("speedR07Mil"));}
        if(doc.containsKey("speedR07Dur")){ m.setSpeedRange07Duration(doc.getInteger("speedR07Dur"));}
        if(doc.containsKey("speedR07Fue")){ m.setSpeedRange07Fuel(doc.getInteger("speedR07Fue"));}
        if(doc.containsKey("speedR08Mil")){ m.setSpeedRange08Mileage(doc.getInteger("speedR08Mil"));}
        if(doc.containsKey("speedR08Dur")){ m.setSpeedRange08Duration(doc.getInteger("speedR08Dur"));}
        if(doc.containsKey("speedR08Fue")){ m.setSpeedRange08Fuel(doc.getInteger("speedR08Fue"));}
        if(doc.containsKey("speedR09Mil")){ m.setSpeedRange09Mileage(doc.getInteger("speedR09Mil"));}
        if(doc.containsKey("speedR09Dur")){ m.setSpeedRange09Duration(doc.getInteger("speedR09Dur"));}
        if(doc.containsKey("speedR09Fue")){ m.setSpeedRange09Fuel(doc.getInteger("speedR09Fue"));}
        if(doc.containsKey("speedR10Mil")){ m.setSpeedRange10Mileage(doc.getInteger("speedR10Mil"));}
        if(doc.containsKey("speedR10Dur")){ m.setSpeedRange10Duration(doc.getInteger("speedR10Dur"));}
        if(doc.containsKey("speedR10Fue")){ m.setSpeedRange10Fuel(doc.getInteger("speedR10Fue"));}
        if(doc.containsKey("speedR11Mil")){ m.setSpeedRange11Mileage(doc.getInteger("speedR11Mil"));}
        if(doc.containsKey("speedR11Dur")){ m.setSpeedRange11Duration(doc.getInteger("speedR11Dur"));}
        if(doc.containsKey("speedR11Fue")){ m.setSpeedRange11Fuel(doc.getInteger("speedR11Fue"));}
        if(doc.containsKey("speedR12Mil")){ m.setSpeedRange12Mileage(doc.getInteger("speedR12Mil"));}
        if(doc.containsKey("speedR12Dur")){ m.setSpeedRange12Duration(doc.getInteger("speedR12Dur"));}
        if(doc.containsKey("speedR12Fue")){ m.setSpeedRange12Fuel(doc.getInteger("speedR12Fue"));}
        if(doc.containsKey("exceedSrMil")){ m.setExceedSpeedRangeMileage(doc.getInteger("exceedSrMil"));}
        if(doc.containsKey("exceedSrDur")){ m.setExceedSpeedRangeDuration(doc.getInteger("exceedSrDur"));}
        if(doc.containsKey("exceedSrFue")){ m.setExceedSpeedRangeFuel(doc.getInteger("exceedSrFue"));}
        if(doc.containsKey("assistBMil")){ m.setAssistBrakeMileage(doc.getInteger("assistBMil"));}
        if(doc.containsKey("assistBDur")){ m.setAssistBrakeDuration(doc.getInteger("assistBDur"));}
        if(doc.containsKey("fatigueDNum")){ m.setFatigueDrivingNumber(doc.getInteger("fatigueDNum"));}
        if(doc.containsKey("parkTDur")){ m.setParkThrottleDuration(doc.getInteger("parkTDur"));}
        if(doc.containsKey("parkTFue")){ m.setParkThrottleFuel(doc.getInteger("parkTFue"));}
        if(doc.containsKey("engineWDur")){ m.setRouteIntegralDuration(doc.getInteger("engineWDur"));}
        if(doc.containsKey("drivingHNum")){ m.setDrivingHandbrakeNumber(doc.getInteger("drivingHNum"));}
        if(doc.containsKey("drivingHDur")){ m.setDrivingHandbrakeDuration(doc.getInteger("drivingHDur"));}
        if(doc.containsKey("drivingHMil")){ m.setDrivingHandbrakeMileage(doc.getInteger("drivingHMil"));}
        if(doc.containsKey("idleHNum")){ m.setIdleHandbrakeNumber(doc.getInteger("idleHNum"));}
        if(doc.containsKey("idleHDur")){ m.setIdleHandbrakeDuration(doc.getInteger("idleHDur"));}
        if(doc.containsKey("gear01Mil")){ m.setGear01Mileage(doc.getInteger("gear01Mil"));}
        if(doc.containsKey("gear01Fue")){ m.setGear01Fuel(doc.getInteger("gear01Fue"));}
        if(doc.containsKey("gear01Dur")){ m.setGear01Duration(doc.getInteger("gear01Dur"));}
        if(doc.containsKey("gear01Num")){ m.setGear01Number(doc.getInteger("gear01Num"));}
        if(doc.containsKey("gear02Mil")){ m.setGear02Mileage(doc.getInteger("gear02Mil"));}
        if(doc.containsKey("gear02Fue")){ m.setGear02Fuel(doc.getInteger("gear02Fue"));}
        if(doc.containsKey("gear02Dur")){ m.setGear02Duration(doc.getInteger("gear02Dur"));}
        if(doc.containsKey("gear02Num")){ m.setGear02Number(doc.getInteger("gear02Num"));}
        if(doc.containsKey("gear03Mil")){ m.setGear03Mileage(doc.getInteger("gear03Mil"));}
        if(doc.containsKey("gear03Fue")){ m.setGear03Fuel(doc.getInteger("gear03Fue"));}
        if(doc.containsKey("gear03Dur")){ m.setGear03Duration(doc.getInteger("gear03Dur"));}
        if(doc.containsKey("gear03Num")){ m.setGear03Number(doc.getInteger("gear03Num"));}
        if(doc.containsKey("gear04Mil")){ m.setGear04Mileage(doc.getInteger("gear04Mil"));}
        if(doc.containsKey("gear04Fue")){ m.setGear04Fuel(doc.getInteger("gear04Fue"));}
        if(doc.containsKey("gear04Dur")){ m.setGear04Duration(doc.getInteger("gear04Dur"));}
        if(doc.containsKey("gear04Num")){ m.setGear04Number(doc.getInteger("gear04Num"));}
        if(doc.containsKey("gear05Mil")){ m.setGear05Mileage(doc.getInteger("gear05Mil"));}
        if(doc.containsKey("gear05Fue")){ m.setGear05Fuel(doc.getInteger("gear05Fue"));}
        if(doc.containsKey("gear05Dur")){ m.setGear05Duration(doc.getInteger("gear05Dur"));}
        if(doc.containsKey("gear05Num")){ m.setGear05Number(doc.getInteger("gear05Num"));}
        if(doc.containsKey("gear06Mil")){ m.setGear06Mileage(doc.getInteger("gear06Mil"));}
        if(doc.containsKey("gear06Fue")){ m.setGear06Fuel(doc.getInteger("gear06Fue"));}
        if(doc.containsKey("gear06Dur")){ m.setGear06Duration(doc.getInteger("gear06Dur"));}
        if(doc.containsKey("gear06Num")){ m.setGear06Number(doc.getInteger("gear06Num"));}
        if(doc.containsKey("gear07Mil")){ m.setGear07Mileage(doc.getInteger("gear07Mil"));}
        if(doc.containsKey("gear07Fue")){ m.setGear07Fuel(doc.getInteger("gear07Fue"));}
        if(doc.containsKey("gear07Dur")){ m.setGear07Duration(doc.getInteger("gear07Dur"));}
        if(doc.containsKey("gear07Num")){ m.setGear07Number(doc.getInteger("gear07Num"));}
        if(doc.containsKey("gear08Mil")){ m.setGear08Mileage(doc.getInteger("gear08Mil"));}
        if(doc.containsKey("gear08Fue")){ m.setGear08Fuel(doc.getInteger("gear08Fue"));}
        if(doc.containsKey("gear08Dur")){ m.setGear08Duration(doc.getInteger("gear08Dur"));}
        if(doc.containsKey("gear08Num")){ m.setGear08Number(doc.getInteger("gear08Num"));}
        if(doc.containsKey("gear09Mil")){ m.setGear09Mileage(doc.getInteger("gear09Mil"));}
        if(doc.containsKey("gear09Fue")){ m.setGear09Fuel(doc.getInteger("gear09Fue"));}
        if(doc.containsKey("gear09Dur")){ m.setGear09Duration(doc.getInteger("gear09Dur"));}
        if(doc.containsKey("gear09Num")){ m.setGear09Number(doc.getInteger("gear09Num"));}
        if(doc.containsKey("gear10Mil")){ m.setGear10Mileage(doc.getInteger("gear10Mil"));}
        if(doc.containsKey("gear10Fue")){ m.setGear10Fuel(doc.getInteger("gear10Fue"));}
        if(doc.containsKey("gear10Dur")){ m.setGear10Duration(doc.getInteger("gear10Dur"));}
        if(doc.containsKey("gear10Num")){ m.setGear10Number(doc.getInteger("gear10Num"));}
        if(doc.containsKey("gear11Mil")){ m.setGear11Mileage(doc.getInteger("gear11Mil"));}
        if(doc.containsKey("gear11Fue")){ m.setGear11Fuel(doc.getInteger("gear11Fue"));}
        if(doc.containsKey("gear11Dur")){ m.setGear11Duration(doc.getInteger("gear11Dur"));}
        if(doc.containsKey("gear11Num")){ m.setGear11Number(doc.getInteger("gear11Num"));}
        if(doc.containsKey("gear12Mil")){ m.setGear12Mileage(doc.getInteger("gear12Mil"));}
        if(doc.containsKey("gear12Fue")){ m.setGear12Fuel(doc.getInteger("gear12Fue"));}
        if(doc.containsKey("gear12Dur")){ m.setGear12Duration(doc.getInteger("gear12Dur"));}
        if(doc.containsKey("gear12Num")){ m.setGear12Number(doc.getInteger("gear12Num"));}
        if(doc.containsKey("gear13Mil")){ m.setGear13Mileage(doc.getInteger("gear13Mil"));}
        if(doc.containsKey("gear13Fue")){ m.setGear13Fuel(doc.getInteger("gear13Fue"));}
        if(doc.containsKey("gear13Dur")){ m.setGear13Duration(doc.getInteger("gear13Dur"));}
        if(doc.containsKey("gear13Num")){ m.setGear13Number(doc.getInteger("gear13Num"));}
        if(doc.containsKey("gear14Mil")){ m.setGear14Mileage(doc.getInteger("gear14Mil"));}
        if(doc.containsKey("gear14Fue")){ m.setGear14Fuel(doc.getInteger("gear14Fue"));}
        if(doc.containsKey("gear14Dur")){ m.setGear14Duration(doc.getInteger("gear14Dur"));}
        if(doc.containsKey("gear14Num")){ m.setGear14Number(doc.getInteger("gear14Num"));}
        if(doc.containsKey("gear15Mil")){ m.setGear15Mileage(doc.getInteger("gear15Mil"));}
        if(doc.containsKey("gear15Fue")){ m.setGear15Fuel(doc.getInteger("gear15Fue"));}
        if(doc.containsKey("gear15Dur")){ m.setGear15Duration(doc.getInteger("gear15Dur"));}
        if(doc.containsKey("gear15Num")){ m.setGear15Number(doc.getInteger("gear15Num"));}
        if(doc.containsKey("gear16Mil")){ m.setGear16Mileage(doc.getInteger("gear16Mil"));}
        if(doc.containsKey("gear16Fue")){ m.setGear16Fuel(doc.getInteger("gear16Fue"));}
        if(doc.containsKey("gear16Dur")){ m.setGear16Duration(doc.getInteger("gear16Dur"));}
        if(doc.containsKey("gear16Num")){ m.setGear16Number(doc.getInteger("gear16Num"));}
        if(doc.containsKey("gearOMil")){ m.setGearOtherMileage(doc.getInteger("gearOMil"));}
        if(doc.containsKey("gearOFue")){ m.setGearOtherFuel(doc.getInteger("gearOFue"));}
        if(doc.containsKey("gearODur")){ m.setGearOtherDuration(doc.getInteger("gearODur"));}
        if(doc.containsKey("gearONum")){ m.setGearOtherNumber(doc.getInteger("gearONum"));}
        if(doc.containsKey("rpmR500Mil")){ m.setRpmRange500Mileage(doc.getInteger("rpmR500Mil"));}
        if(doc.containsKey("rpmR500Fue")){ m.setRpmRange500Fuel(doc.getInteger("rpmR500Fue"));}
        if(doc.containsKey("rpmR500Dur")){ m.setRpmRange500Duration(doc.getInteger("rpmR500Dur"));}
        if(doc.containsKey("rpmR600Mil")){ m.setRpmRange600Mileage(doc.getInteger("rpmR600Mil"));}
        if(doc.containsKey("rpmR600Fue")){ m.setRpmRange600Fuel(doc.getInteger("rpmR600Fue"));}
        if(doc.containsKey("rpmR600Dur")){ m.setRpmRange600Duration(doc.getInteger("rpmR600Dur"));}
        if(doc.containsKey("rpmR700Mil")){ m.setRpmRange700Mileage(doc.getInteger("rpmR700Mil"));}
        if(doc.containsKey("rpmR700Fue")){ m.setRpmRange700Fuel(doc.getInteger("rpmR700Fue"));}
        if(doc.containsKey("rpmR700Dur")){ m.setRpmRange700Duration(doc.getInteger("rpmR700Dur"));}
        if(doc.containsKey("rpmR800Mil")){ m.setRpmRange800Mileage(doc.getInteger("rpmR800Mil"));}
        if(doc.containsKey("rpmR800Fue")){ m.setRpmRange800Fuel(doc.getInteger("rpmR800Fue"));}
        if(doc.containsKey("rpmR800Dur")){ m.setRpmRange800Duration(doc.getInteger("rpmR800Dur"));}
        if(doc.containsKey("rpmR900Mil")){ m.setRpmRange900Mileage(doc.getInteger("rpmR900Mil"));}
        if(doc.containsKey("rpmR900Fue")){ m.setRpmRange900Fuel(doc.getInteger("rpmR900Fue"));}
        if(doc.containsKey("rpmR900Dur")){ m.setRpmRange900Duration(doc.getInteger("rpmR900Dur"));}
        if(doc.containsKey("rpmR1000Mil")){ m.setRpmRange1000Mileage(doc.getInteger("rpmR1000Mil"));}
        if(doc.containsKey("rpmR1000Fue")){ m.setRpmRange1000Fuel(doc.getInteger("rpmR1000Fue"));}
        if(doc.containsKey("rpmR1000Dur")){ m.setRpmRange1000Duration(doc.getInteger("rpmR1000Dur"));}
        if(doc.containsKey("rpmR1100Mil")){ m.setRpmRange1100Mileage(doc.getInteger("rpmR1100Mil"));}
        if(doc.containsKey("rpmR1100Fue")){ m.setRpmRange1100Fuel(doc.getInteger("rpmR1100Fue"));}
        if(doc.containsKey("rpmR1100Dur")){ m.setRpmRange1100Duration(doc.getInteger("rpmR1100Dur"));}
        if(doc.containsKey("rpmR1200Mil")){ m.setRpmRange1200Mileage(doc.getInteger("rpmR1200Mil"));}
        if(doc.containsKey("rpmR1200Fue")){ m.setRpmRange1200Fuel(doc.getInteger("rpmR1200Fue"));}
        if(doc.containsKey("rpmR1200Dur")){ m.setRpmRange1200Duration(doc.getInteger("rpmR1200Dur"));}
        if(doc.containsKey("rpmR1300Mil")){ m.setRpmRange1300Mileage(doc.getInteger("rpmR1300Mil"));}
        if(doc.containsKey("rpmR1300Fue")){ m.setRpmRange1300Fuel(doc.getInteger("rpmR1300Fue"));}
        if(doc.containsKey("rpmR1300Dur")){ m.setRpmRange1300Duration(doc.getInteger("rpmR1300Dur"));}
        if(doc.containsKey("rpmR1400Mil")){ m.setRpmRange1400Mileage(doc.getInteger("rpmR1400Mil"));}
        if(doc.containsKey("rpmR1400Fue")){ m.setRpmRange1400Fuel(doc.getInteger("rpmR1400Fue"));}
        if(doc.containsKey("rpmR1400Dur")){ m.setRpmRange1400Duration(doc.getInteger("rpmR1400Dur"));}
        if(doc.containsKey("rpmR1500Mil")){ m.setRpmRange1500Mileage(doc.getInteger("rpmR1500Mil"));}
        if(doc.containsKey("rpmR1500Fue")){ m.setRpmRange1500Fuel(doc.getInteger("rpmR1500Fue"));}
        if(doc.containsKey("rpmR1500Dur")){ m.setRpmRange1500Duration(doc.getInteger("rpmR1500Dur"));}
        if(doc.containsKey("rpmR1600Mil")){ m.setRpmRange1600Mileage(doc.getInteger("rpmR1600Mil"));}
        if(doc.containsKey("rpmR1600Fue")){ m.setRpmRange1600Fuel(doc.getInteger("rpmR1600Fue"));}
        if(doc.containsKey("rpmR1600Dur")){ m.setRpmRange1600Duration(doc.getInteger("rpmR1600Dur"));}
        if(doc.containsKey("rpmR1700Mil")){ m.setRpmRange1700Mileage(doc.getInteger("rpmR1700Mil"));}
        if(doc.containsKey("rpmR1700Fue")){ m.setRpmRange1700Fuel(doc.getInteger("rpmR1700Fue"));}
        if(doc.containsKey("rpmR1700Dur")){ m.setRpmRange1700Duration(doc.getInteger("rpmR1700Dur"));}
        if(doc.containsKey("rpmR1800Mil")){ m.setRpmRange1800Mileage(doc.getInteger("rpmR1800Mil"));}
        if(doc.containsKey("rpmR1800Fue")){ m.setRpmRange1800Fuel(doc.getInteger("rpmR1800Fue"));}
        if(doc.containsKey("rpmR1800Dur")){ m.setRpmRange1800Duration(doc.getInteger("rpmR1800Dur"));}
        if(doc.containsKey("rpmR1900Mil")){ m.setRpmRange1900Mileage(doc.getInteger("rpmR1900Mil"));}
        if(doc.containsKey("rpmR1900Fue")){ m.setRpmRange1900Fuel(doc.getInteger("rpmR1900Fue"));}
        if(doc.containsKey("rpmR1900Dur")){ m.setRpmRange1900Duration(doc.getInteger("rpmR1900Dur"));}
        if(doc.containsKey("rpmR2000Mil")){ m.setRpmRange2000Mileage(doc.getInteger("rpmR2000Mil"));}
        if(doc.containsKey("rpmR2000Fue")){ m.setRpmRange2000Fuel(doc.getInteger("rpmR2000Fue"));}
        if(doc.containsKey("rpmR2000Dur")){ m.setRpmRange2000Duration(doc.getInteger("rpmR2000Dur"));}
        if(doc.containsKey("rpmR2100Mil")){ m.setRpmRange2100Mileage(doc.getInteger("rpmR2100Mil"));}
        if(doc.containsKey("rpmR2100Fue")){ m.setRpmRange2100Fuel(doc.getInteger("rpmR2100Fue"));}
        if(doc.containsKey("rpmR2100Dur")){ m.setRpmRange2100Duration(doc.getInteger("rpmR2100Dur"));}
        if(doc.containsKey("rpmR2200Mil")){ m.setRpmRange2200Mileage(doc.getInteger("rpmR2200Mil"));}
        if(doc.containsKey("rpmR2200Fue")){ m.setRpmRange2200Fuel(doc.getInteger("rpmR2200Fue"));}
        if(doc.containsKey("rpmR2200Dur")){ m.setRpmRange2200Duration(doc.getInteger("rpmR2200Dur"));}
        if(doc.containsKey("rpmR2300Mil")){ m.setRpmRange2300Mileage(doc.getInteger("rpmR2300Mil"));}
        if(doc.containsKey("rpmR2300Fue")){ m.setRpmRange2300Fuel(doc.getInteger("rpmR2300Fue"));}
        if(doc.containsKey("rpmR2300Dur")){ m.setRpmRange2300Duration(doc.getInteger("rpmR2300Dur"));}
        if(doc.containsKey("rpmR2400Mil")){ m.setRpmRange2400Mileage(doc.getInteger("rpmR2400Mil"));}
        if(doc.containsKey("rpmR2400Fue")){ m.setRpmRange2400Fuel(doc.getInteger("rpmR2400Fue"));}
        if(doc.containsKey("rpmR2400Dur")){ m.setRpmRange2400Duration(doc.getInteger("rpmR2400Dur"));}
        if(doc.containsKey("rpmR2500Mil")){ m.setRpmRange2500Mileage(doc.getInteger("rpmR2500Mil"));}
        if(doc.containsKey("rpmR2500Fue")){ m.setRpmRange2500Fuel(doc.getInteger("rpmR2500Fue"));}
        if(doc.containsKey("rpmR2500Dur")){ m.setRpmRange2500Duration(doc.getInteger("rpmR2500Dur"));}
        if(doc.containsKey("rpmR2600Mil")){ m.setRpmRange2600Mileage(doc.getInteger("rpmR2600Mil"));}
        if(doc.containsKey("rpmR2600Fue")){ m.setRpmRange2600Fuel(doc.getInteger("rpmR2600Fue"));}
        if(doc.containsKey("rpmR2600Dur")){ m.setRpmRange2600Duration(doc.getInteger("rpmR2600Dur"));}
        if(doc.containsKey("rpmR2700Mil")){ m.setRpmRange2700Mileage(doc.getInteger("rpmR2700Mil"));}
        if(doc.containsKey("rpmR2700Fue")){ m.setRpmRange2700Fuel(doc.getInteger("rpmR2700Fue"));}
        if(doc.containsKey("rpmR2700Dur")){ m.setRpmRange2700Duration(doc.getInteger("rpmR2700Dur"));}
        if(doc.containsKey("rpmR2800Mil")){ m.setRpmRange2800Mileage(doc.getInteger("rpmR2800Mil"));}
        if(doc.containsKey("rpmR2800Fue")){ m.setRpmRange2800Fuel(doc.getInteger("rpmR2800Fue"));}
        if(doc.containsKey("rpmR2800Dur")){ m.setRpmRange2800Duration(doc.getInteger("rpmR2800Dur"));}
        if(doc.containsKey("rpmR2900Mil")){ m.setRpmRange2900Mileage(doc.getInteger("rpmR2900Mil"));}
        if(doc.containsKey("rpmR2900Fue")){ m.setRpmRange2900Fuel(doc.getInteger("rpmR2900Fue"));}
        if(doc.containsKey("rpmR2900Dur")){ m.setRpmRange2900Duration(doc.getInteger("rpmR2900Dur"));}
        if(doc.containsKey("rpmR3000Mil")){ m.setRpmRange3000Mileage(doc.getInteger("rpmR3000Mil"));}
        if(doc.containsKey("rpmR3000Fue")){ m.setRpmRange3000Fuel(doc.getInteger("rpmR3000Fue"));}
        if(doc.containsKey("rpmR3000Dur")){ m.setRpmRange3000Duration(doc.getInteger("rpmR3000Dur"));}
        if(doc.containsKey("rpmRo3000Mil")){ m.setRpmRangeOver3000Mileage(doc.getInteger("rpmRo3000Mil"));}
        if(doc.containsKey("rpmRo3000Fue")){ m.setRpmRangeOver3000Fuel(doc.getInteger("rpmRo3000Fue"));}
        if(doc.containsKey("rpmRo3000Dur")){ m.setRpmRangeOver3000Duration(doc.getInteger("rpmRo3000Dur"));}
//          Map<Integer,RangeData> altitudeRanges -->
//          Map<Integer,RangeData> clockRanges -->
        if(doc.containsKey("workWt50Dur")){ m.setWorkWaterTemp50Duration(doc.getInteger("workWt50Dur"));}
        if(doc.containsKey("workWt70Dur")){ m.setWorkWaterTemp70Duration(doc.getInteger("workWt70Dur"));}
        if(doc.containsKey("workWt80Dur")){ m.setWorkWaterTemp80Duration(doc.getInteger("workWt80Dur"));}
        if(doc.containsKey("workWt85Dur")){ m.setWorkWaterTemp85Duration(doc.getInteger("workWt85Dur"));}
        if(doc.containsKey("workWt90Dur")){ m.setWorkWaterTemp90Duration(doc.getInteger("workWt90Dur"));}
        if(doc.containsKey("workWt95Dur")){ m.setWorkWaterTemp95Duration(doc.getInteger("workWt95Dur"));}
        if(doc.containsKey("workWt100Dur")){ m.setWorkWaterTemp100Duration(doc.getInteger("workWt100Dur"));}
        if(doc.containsKey("workWt105Dur")){ m.setWorkWaterTemp105Duration(doc.getInteger("workWt105Dur"));}
        if(doc.containsKey("workWt110Dur")){ m.setWorkWaterTemp110Duration(doc.getInteger("workWt110Dur"));}
        if(doc.containsKey("workWt115Dur")){ m.setWorkWaterTemp115Duration(doc.getInteger("workWt115Dur"));}
        if(doc.containsKey("workWt120Dur")){ m.setWorkWaterTemp120Duration(doc.getInteger("workWt120Dur"));}
        if(doc.containsKey("workWt125Dur")){ m.setWorkWaterTemp125Duration(doc.getInteger("workWt125Dur"));}
        if(doc.containsKey("workWt130Dur")){ m.setWorkWaterTemp130Duration(doc.getInteger("workWt130Dur"));}
        if(doc.containsKey("workWt135Dur")){ m.setWorkWaterTemp135Duration(doc.getInteger("workWt135Dur"));}
        if(doc.containsKey("workWt140Dur")){ m.setWorkWaterTemp140Duration(doc.getInteger("workWt140Dur"));}
        if(doc.containsKey("workWt145Dur")){ m.setWorkWaterTemp145Duration(doc.getInteger("workWt145Dur"));}
        if(doc.containsKey("workWt150Dur")){ m.setWorkWaterTemp150Duration(doc.getInteger("workWt150Dur"));}
        if(doc.containsKey("workWto150Dur")){ m.setWorkWaterTempOver150Duration(doc.getInteger("workWto150Dur"));}
        if(doc.containsKey("idleWt50Dur")){ m.setIdleWaterTemp50Duration(doc.getInteger("idleWt50Dur"));}
        if(doc.containsKey("idleWt70Dur")){ m.setIdleWaterTemp70Duration(doc.getInteger("idleWt70Dur"));}
        if(doc.containsKey("idleWt80Dur")){ m.setIdleWaterTemp80Duration(doc.getInteger("idleWt80Dur"));}
        if(doc.containsKey("idleWt85Dur")){ m.setIdleWaterTemp85Duration(doc.getInteger("idleWt85Dur"));}
        if(doc.containsKey("idleWt90Dur")){ m.setIdleWaterTemp90Duration(doc.getInteger("idleWt90Dur"));}
        if(doc.containsKey("idleWt95Dur")){ m.setIdleWaterTemp95Duration(doc.getInteger("idleWt95Dur"));}
        if(doc.containsKey("idleWt100Dur")){ m.setIdleWaterTemp100Duration(doc.getInteger("idleWt100Dur"));}
        if(doc.containsKey("idleWt105Dur")){ m.setIdleWaterTemp105Duration(doc.getInteger("idleWt105Dur"));}
        if(doc.containsKey("idleWt110Dur")){ m.setIdleWaterTemp110Duration(doc.getInteger("idleWt110Dur"));}
        if(doc.containsKey("idleWt115Dur")){ m.setIdleWaterTemp115Duration(doc.getInteger("idleWt115Dur"));}
        if(doc.containsKey("idleWt120Dur")){ m.setIdleWaterTemp120Duration(doc.getInteger("idleWt120Dur"));}
        if(doc.containsKey("idleWt125Dur")){ m.setIdleWaterTemp125Duration(doc.getInteger("idleWt125Dur"));}
        if(doc.containsKey("idleWt130Dur")){ m.setIdleWaterTemp130Duration(doc.getInteger("idleWt130Dur"));}
        if(doc.containsKey("idleWt135Dur")){ m.setIdleWaterTemp135Duration(doc.getInteger("idleWt135Dur"));}
        if(doc.containsKey("idleWt140Dur")){ m.setIdleWaterTemp140Duration(doc.getInteger("idleWt140Dur"));}
        if(doc.containsKey("idleWt145Dur")){ m.setIdleWaterTemp145Duration(doc.getInteger("idleWt145Dur"));}
        if(doc.containsKey("idleWt150Dur")){ m.setIdleWaterTemp150Duration(doc.getInteger("idleWt150Dur"));}
        if(doc.containsKey("idleWto150Dur")){ m.setIdleWaterTempOver150Duration(doc.getInteger("idleWto150Dur"));}
        if(doc.containsKey("maxWwTemp")){ m.setMaxWorkWaterTemp(doc.getInteger("maxWwTemp"));}
        if(doc.containsKey("minWwTemp")){ m.setMinWorkWaterTemp(doc.getInteger("minWwTemp"));}
        if(doc.containsKey("workWtSum")){ m.setWorkWaterTempSum(doc.getLong("workWtSum"));}
        if(doc.containsKey("workWtCount")){ m.setWorkWaterTempCount(doc.getInteger("workWtCount"));}
        if(doc.containsKey("maxIwTemp")){ m.setMaxIdleWaterTemp(doc.getInteger("maxIwTemp"));}
        if(doc.containsKey("minIwTemp")){ m.setMinIdleWaterTemp(doc.getInteger("minIwTemp"));}
        if(doc.containsKey("idleWtSum")){ m.setIdleWaterTempSum(doc.getLong("idleWtSum"));}
        if(doc.containsKey("idleWtCount")){ m.setIdleWaterTempCount(doc.getInteger("idleWtCount"));}
        if(doc.containsKey("gasOp0Dur")){ m.setGasOpenPercent0Duration(doc.getInteger("gasOp0Dur"));}
        if(doc.containsKey("gasOp10Dur")){ m.setGasOpenPercent10Duration(doc.getInteger("gasOp10Dur"));}
        if(doc.containsKey("gasOp20Dur")){ m.setGasOpenPercent20Duration(doc.getInteger("gasOp20Dur"));}
        if(doc.containsKey("gasOp30Dur")){ m.setGasOpenPercent30Duration(doc.getInteger("gasOp30Dur"));}
        if(doc.containsKey("gasOp40Dur")){ m.setGasOpenPercent40Duration(doc.getInteger("gasOp40Dur"));}
        if(doc.containsKey("gasOp50Dur")){ m.setGasOpenPercent50Duration(doc.getInteger("gasOp50Dur"));}
        if(doc.containsKey("gasOp60Dur")){ m.setGasOpenPercent60Duration(doc.getInteger("gasOp60Dur"));}
        if(doc.containsKey("gasOp70Dur")){ m.setGasOpenPercent70Duration(doc.getInteger("gasOp70Dur"));}
        if(doc.containsKey("gasOp80Dur")){ m.setGasOpenPercent80Duration(doc.getInteger("gasOp80Dur"));}
        if(doc.containsKey("gasOp90Dur")){ m.setGasOpenPercent90Duration(doc.getInteger("gasOp90Dur"));}
        if(doc.containsKey("gasOp99Dur")){ m.setGasOpenPercent99Duration(doc.getInteger("gasOp99Dur"));}
        if(doc.containsKey("gasOp100Dur")){ m.setGasOpenPercent100Duration(doc.getInteger("gasOp100Dur"));}
        if(doc.containsKey("torque0Dur")){ m.setTorque0Duration(doc.getInteger("torque0Dur"));}
        if(doc.containsKey("torque10Dur")){ m.setTorque10Duration(doc.getInteger("torque10Dur"));}
        if(doc.containsKey("torque20Dur")){ m.setTorque20Duration(doc.getInteger("torque20Dur"));}
        if(doc.containsKey("torque30Dur")){ m.setTorque30Duration(doc.getInteger("torque30Dur"));}
        if(doc.containsKey("torque40Dur")){ m.setTorque40Duration(doc.getInteger("torque40Dur"));}
        if(doc.containsKey("torque50Dur")){ m.setTorque50Duration(doc.getInteger("torque50Dur"));}
        if(doc.containsKey("torque60Dur")){ m.setTorque60Duration(doc.getInteger("torque60Dur"));}
        if(doc.containsKey("torque70Dur")){ m.setTorque70Duration(doc.getInteger("torque70Dur"));}
        if(doc.containsKey("torque80Dur")){ m.setTorque80Duration(doc.getInteger("torque80Dur"));}
        if(doc.containsKey("torque90Dur")){ m.setTorque90Duration(doc.getInteger("torque90Dur"));}
        if(doc.containsKey("torque99Dur")){ m.setTorque99Duration(doc.getInteger("torque99Dur"));}
        if(doc.containsKey("torque100Dur")){ m.setTorque100Duration(doc.getInteger("torque100Dur"));}
        if(doc.containsKey("maxTorque")){ m.setMaxTorque(doc.getInteger("maxTorque"));}
        if(doc.containsKey("minTorque")){ m.setMinTorque(doc.getInteger("minTorque"));}
        if(doc.containsKey("torqueSum")){ m.setTorqueSum(doc.getLong("torqueSum"));}
        if(doc.containsKey("torqueCount")){ m.setTorqueCount(doc.getInteger("torqueCount"));}
        if(doc.containsKey("noIrSum")){ m.setNoIdleRpmSum(doc.getLong("noIrSum"));}
        if(doc.containsKey("noIrCount")){ m.setNoIdleRpmCount(doc.getInteger("noIrCount"));}
        if(doc.containsKey("rpmSum")){ m.setRpmSum(doc.getLong("rpmSum"));}
        if(doc.containsKey("rpmCount")){ m.setRpmCount(doc.getInteger("rpmCount"));}
        if(doc.containsKey("maxRpm")){ m.setMaxRpm(doc.getInteger("maxRpm"));}
        if(doc.containsKey("minRpm")){ m.setMinRpm(doc.getInteger("minRpm"));}
        if(doc.containsKey("iat50Dur")){ m.setIat50Duration(doc.getInteger("iat50Dur"));}
        if(doc.containsKey("iat70Dur")){ m.setIat70Duration(doc.getInteger("iat70Dur"));}
        if(doc.containsKey("iat80Dur")){ m.setIat80Duration(doc.getInteger("iat80Dur"));}
        if(doc.containsKey("iat85Dur")){ m.setIat85Duration(doc.getInteger("iat85Dur"));}
        if(doc.containsKey("iat90Dur")){ m.setIat90Duration(doc.getInteger("iat90Dur"));}
        if(doc.containsKey("iat95Dur")){ m.setIat95Duration(doc.getInteger("iat95Dur"));}
        if(doc.containsKey("iat100Dur")){ m.setIat100Duration(doc.getInteger("iat100Dur"));}
        if(doc.containsKey("iat105Dur")){ m.setIat105Duration(doc.getInteger("iat105Dur"));}
        if(doc.containsKey("iat110Dur")){ m.setIat110Duration(doc.getInteger("iat110Dur"));}
        if(doc.containsKey("iat115Dur")){ m.setIat115Duration(doc.getInteger("iat115Dur"));}
        if(doc.containsKey("iat120Dur")){ m.setIat120Duration(doc.getInteger("iat120Dur"));}
        if(doc.containsKey("iat125Dur")){ m.setIat125Duration(doc.getInteger("iat125Dur"));}
        if(doc.containsKey("iat130Dur")){ m.setIat130Duration(doc.getInteger("iat130Dur"));}
        if(doc.containsKey("iat135Dur")){ m.setIat135Duration(doc.getInteger("iat135Dur"));}
        if(doc.containsKey("iat140Dur")){ m.setIat140Duration(doc.getInteger("iat140Dur"));}
        if(doc.containsKey("iat145Dur")){ m.setIat145Duration(doc.getInteger("iat145Dur"));}
        if(doc.containsKey("iat150Dur")){ m.setIat150Duration(doc.getInteger("iat150Dur"));}
        if(doc.containsKey("iatO150Dur")){ m.setIatOver150Duration(doc.getInteger("iatO150Dur"));}
        if(doc.containsKey("iatSum")){ m.setIatSum(doc.getLong("iatSum"));}
        if(doc.containsKey("iatCount")){ m.setIatCount(doc.getInteger("iatCount"));}
        if(doc.containsKey("maxIat")){ m.setMaxIat(doc.getInteger("maxIat"));}
        if(doc.containsKey("minIat")){ m.setMinIat(doc.getInteger("minIat"));}
        if(doc.containsKey("ip50Dur")){ m.setIp50Duration(doc.getInteger("ip50Dur"));}
        if(doc.containsKey("ip60Dur")){ m.setIp60Duration(doc.getInteger("ip60Dur"));}
        if(doc.containsKey("ip70Dur")){ m.setIp70Duration(doc.getInteger("ip70Dur"));}
        if(doc.containsKey("ip80Dur")){ m.setIp80Duration(doc.getInteger("ip80Dur"));}
        if(doc.containsKey("ip90Dur")){ m.setIp90Duration(doc.getInteger("ip90Dur"));}
        if(doc.containsKey("ip100Dur")){ m.setIp100Duration(doc.getInteger("ip100Dur"));}
        if(doc.containsKey("ip110Dur")){ m.setIp110Duration(doc.getInteger("ip110Dur"));}
        if(doc.containsKey("ip120Dur")){ m.setIp120Duration(doc.getInteger("ip120Dur"));}
        if(doc.containsKey("ip130Dur")){ m.setIp130Duration(doc.getInteger("ip130Dur"));}
        if(doc.containsKey("ip140Dur")){ m.setIp140Duration(doc.getInteger("ip140Dur"));}
        if(doc.containsKey("ip150Dur")){ m.setIp150Duration(doc.getInteger("ip150Dur"));}
        if(doc.containsKey("ipO150Dur")){ m.setIpOver150Duration(doc.getInteger("ipO150Dur"));}
        if(doc.containsKey("ipSum")){ m.setIpSum(doc.getLong("ipSum"));}
        if(doc.containsKey("ipCount")){ m.setIpCount(doc.getInteger("ipCount"));}
        if(doc.containsKey("maxIp")){ m.setMaxIp(doc.getInteger("maxIp"));}
        if(doc.containsKey("minIp")){ m.setMinIp(doc.getInteger("minIp"));}
        if(doc.containsKey("crossCities")){ m.setCrossCities(doc.getString("crossCities"));}
        if(doc.containsKey("so90Num")){ m.setSo90Number(doc.getInteger("so90Num"));}
        if(doc.containsKey("so90Dur")){ m.setSo90Duration(doc.getInteger("so90Dur"));}
        if(doc.containsKey("so90Mil")){ m.setSo90Mileage(doc.getInteger("so90Mil"));}
        if(doc.containsKey("so120Num")){ m.setSo120Number(doc.getInteger("so120Num"));}
        if(doc.containsKey("so120Dur")){ m.setSo120Duration(doc.getInteger("so120Dur"));}
        if(doc.containsKey("so120Mil")){ m.setSo120Mileage(doc.getInteger("so120Mil"));}
        if(doc.containsKey("srNum")){ m.setSrNumber(doc.getInteger("srNum"));}
        if(doc.containsKey("srDur")){ m.setSrDuration(doc.getInteger("srDur"));}
        if(doc.containsKey("srMil")){ m.setSrMileage(doc.getInteger("srMil"));}
        if(doc.containsKey("srFue")){ m.setSrFuel(doc.getInteger("srFue"));}
        if(doc.containsKey("lrogNum")){ m.setLrogNumber(doc.getInteger("lrogNum"));}
        if(doc.containsKey("lrogDur")){ m.setLrogDuration(doc.getInteger("lrogDur"));}
        if(doc.containsKey("lrogMil")){ m.setLrogMileage(doc.getInteger("lrogMil"));}
        if(doc.containsKey("lrogFue")){ m.setLrogFuel(doc.getInteger("lrogFue"));}
        if(doc.containsKey("hsbNum")){ m.setHsbNumber(doc.getInteger("hsbNum"));}
        if(doc.containsKey("hsbDur")){ m.setHsbDuration(doc.getInteger("hsbDur"));}
        if(doc.containsKey("hsbMil")){ m.setHsbMileage(doc.getInteger("hsbMil"));}
        if(doc.containsKey("csbNum")){ m.setCsbNumber(doc.getInteger("csbNum"));}
        if(doc.containsKey("csbDur")){ m.setCsbDuration(doc.getInteger("csbDur"));}
        if(doc.containsKey("csbMil")){ m.setCsbMileage(doc.getInteger("csbMil"));}
        if(doc.containsKey("clutchNum")){ m.setClutchNumber(doc.getInteger("clutchNum"));}
        if(doc.containsKey("clutchDur")){ m.setClutchDuration(doc.getInteger("clutchDur"));}
        if(doc.containsKey("clutchMil")){ m.setClutchMileage(doc.getInteger("clutchMil"));}
        if(doc.containsKey("shartTNum")){ m.setSharpTurningNumber(doc.getInteger("shartTNum"));}
        if(doc.containsKey("shartTMil")){ m.setSharpTurningMil(doc.getInteger("shartTMil"));}
        if(doc.containsKey("so90Fue")){ m.setSo90Fuel(doc.getInteger("so90Fue"));}
        if(doc.containsKey("so120Fue")){ m.setSo120Fuel(doc.getInteger("so120Fue"));}
        if(doc.containsKey("fatigueDur")){ m.setFatigueDrivingDuration(doc.getInteger("fatigueDur"));}
        if(doc.containsKey("pcsFlag")){ m.setPreciseFlag(doc.getInteger("pcsFlag"));}
        if(doc.containsKey("wlType")){ m.setWloadType(doc.getInteger("wlType"));}
//          List<InterCrossCity> ccDetail -->
        /*--end_row*/
        m.setAltitudeRanges(getRangeData(doc, "altitudeRanges"));
        m.setClockRanges(getRangeData(doc, "clockRanges"));
        m.setDay(doc.getString("day"));
        if(doc.containsKey("ccDetail")){
            m.setCrossCitiesDetail(GsonUtils.gsonToList(doc.getString("ccDetail"), InterCrossCity.class));
        }

        //东风新增，急加速
        if(doc.containsKey("sharpUsMil_DF")){ m.setSharpUpSpeedMileage_DF(doc.getInteger("sharpUsMil_DF"));}
        if(doc.containsKey("sharpUsFue_DF")){ m.setSharpUpSpeedFuel_DF(doc.getInteger("sharpUsFue_DF"));}
        if(doc.containsKey("sharpUsDur_DF")){ m.setSharpUpSpeedDuration_DF(doc.getInteger("sharpUsDur_DF"));}
        if(doc.containsKey("sharpUsNum_DF")){ m.setSharpUpSpeedNumber_DF(doc.getInteger("sharpUsNum_DF"));}
        //东风新增，急减速
        if(doc.containsKey("sharpDsMil_DF")){ m.setSharpDownSpeedMileage_DF(doc.getInteger("sharpDsMil_DF"));}
        if(doc.containsKey("sharpDsFue_DF")){ m.setSharpDownSpeedFuel_DF(doc.getInteger("sharpDsFue_DF"));}
        if(doc.containsKey("sharpDsDur_DF")){ m.setSharpDownSpeedDuration_DF(doc.getInteger("sharpDsDur_DF"));}
        if(doc.containsKey("sharpDsNum_DF")){ m.setSharpDownSpeedNumber_DF(doc.getInteger("sharpDsNum_DF"));}
        //东风新增，急转弯
        if(doc.containsKey("sharpTNum_DF")){ m.setSharpTurningNumber_DF(doc.getInteger("sharpTNum_DF"));}
        //东风新增，超长怠速
        if(doc.containsKey("longIdleFue_DF")){ m.setLongIdleFuel_DF(doc.getInteger("longIdleFue_DF"));}
        if(doc.containsKey("longIdleDur_DF")){ m.setLongIdleDuration_DF(doc.getInteger("longIdleDur_DF"));}
        if(doc.containsKey("longIdleNum_DF")){  m.setLongIdleNumber_DF(doc.getInteger("longIdleNum_DF"));}
        //东风新增，冷车运行
        if(doc.containsKey("coldRunMil_DF")){ m.setColdRunningMileage_DF(doc.getInteger("coldRunMil_DF"));}
        if(doc.containsKey("coldRunFue_DF")){  m.setColdRunningFuel_DF(doc.getInteger("coldRunFue_DF"));}
        if(doc.containsKey("coldRunDur_DF")){  m.setColdRunningDuration_DF(doc.getInteger("coldRunDur_DF"));}
        if(doc.containsKey("coldRunNum_DF")){ m.setColdRunningNumber_DF(doc.getInteger("coldRunNum_DF"));}
        //东风新增，夜晚开车
        if(doc.containsKey("nightRunMil_DF")){ m.setNightRunningMileage_DF(doc.getInteger("nightRunMil_DF"));}
        if(doc.containsKey("nightRunFue_DF")){ m.setNightRunningFuel_DF(doc.getInteger("nightRunFue_DF"));}
        if(doc.containsKey("nightRunDur_DF")){ m.setNightRunningDuration_DF(doc.getInteger("nightRunDur_DF"));}
        if(doc.containsKey("nightRunNum_DF")){ m.setNightRunningNumber_DF(doc.getInteger("nightRunNum_DF"));}
        //东风新增，引擎高转速
        if(doc.containsKey("hrMil_DF")){ m.setHighRotationMileage_DF(doc.getInteger("hrMil_DF"));}
        if(doc.containsKey("hrFue_DF")){ m.setHighRotationFuel_DF(doc.getInteger("hrFue_DF"));}
        if(doc.containsKey("hrDur_DF")){ m.setHighRotationDuration_DF(doc.getInteger("hrDur_DF"));}
        if(doc.containsKey("hrNum_DF")){ m.setHighRotationNumber_DF(doc.getInteger("hrNum_DF"));}
        //东风新增，大油门
        if(doc.containsKey("lGasMil_DF")){ m.setLargeGasMileage_DF(doc.getInteger("lGasMil_DF"));}
        if(doc.containsKey("lGasFue_DF")){ m.setLargeGasFuel_DF(doc.getInteger("lGasFue_DF"));}
        if(doc.containsKey("lGasDur_DF")){ m.setLargeGasDuration_DF(doc.getInteger("lGasDur_DF"));}
        if(doc.containsKey("lGasNum_DF")){ m.setLargeGasNumber_DF(doc.getInteger("lGasNum_DF"));}
        //东风新增，全油门
        if(doc.containsKey("fGasMil_DF")){ m.setFullGasMileage_DF(doc.getInteger("fGasMil_DF"));}
        if(doc.containsKey("fGasFue_DF")){ m.setFullGasFuel_DF(doc.getInteger("fGasFue_DF"));}
        if(doc.containsKey("fGasDur_DF")){ m.setFullGasDuration_DF(doc.getInteger("fGasDur_DF"));}
        if(doc.containsKey("fGasNum_DF")){ m.setFullGasNumber_DF(doc.getInteger("fGasNum_DF"));}
        //东风新增，高速行驶
        if(doc.containsKey("fSpeedMil_DF")){ m.setFastSpeedMileage_DF(doc.getInteger("fSpeedMil_DF"));}
        if(doc.containsKey("fSpeedFue_DF")){ m.setFastSpeedFuel_DF(doc.getInteger("fSpeedFue_DF"));}
        if(doc.containsKey("fSpeedDur_DF")){ m.setFastSpeedDuration_DF(doc.getInteger("fSpeedDur_DF"));}
        if(doc.containsKey("fSpeedNum_DF")){ m.setFastSpeedNumber_DF(doc.getInteger("fSpeedNum_DF"));}
        //东风新增，空档滑行
        if(doc.containsKey("neutralGcMil_DF")){ m.setNeutralGearCoastMileage_DF(doc.getInteger("neutralGcMil_DF"));}
        if(doc.containsKey("neutralGcFue_DF")){ m.setNeutralGearCoastFuel_DF(doc.getInteger("neutralGcFue_DF"));}
        if(doc.containsKey("neutralGcDur_DF")){ m.setNeutralGearCoastDuration_DF(doc.getInteger("neutralGcDur_DF"));}
        if(doc.containsKey("neutralGcNum_DF")){ m.setNeutralGearCoastNumber_DF(doc.getInteger("neutralGcNum_DF"));}
        //东风新增，熄火滑行
        if(doc.containsKey("fCoastMil_DF")){ m.setFlameoutCoastMileage_DF(doc.getInteger("fCoastMil_DF"));}
        if(doc.containsKey("fCoastFue_DF")){ m.setFlameoutCoastFuel_DF(doc.getInteger("fCoastFue_DF"));}
        if(doc.containsKey("fCoastDur_DF")){ m.setFlameoutCoastDuration_DF(doc.getInteger("fCoastDur_DF"));}
        if(doc.containsKey("fCoastNum_DF")){ m.setFlameoutCoastNumber_DF(doc.getInteger("fCoastNum_DF"));}
        //东风新增，载重
        if(doc.containsKey("amtLoad_DF")){ m.setAmtLoad_DF(doc.getInteger("amtLoad_DF"));}
        if(doc.containsKey("vecuLoad_DF")){ m.setVecuLoad_DF(doc.getInteger("vecuLoad_DF"));}
        if(doc.containsKey("loadType_DF")){ m.setLoadType_DF(doc.getInteger("loadType_DF"));}

        return m;
    }

}
